首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL -小时(日期时间)

问MySQL -小时(日期时间)
EN

Stack Overflow用户
提问于 2014-04-10 18:35:15
回答 2查看 424关注 0票数 0

在这个查询中有一个错误。错误表示预期的已知函数,得到“小时”。如果删除此部分(AND HOUR({$nowDate}) = 11),则查询工作正常。

代码语言:javascript
复制
SELECT c FROM ProConvocationBundle:Convocation c
INNER JOIN ProCommunityBundle:Community co WITH co.id = c.community
INNER JOIN ProProposalBundle:Proposal p WITH p.convocation = c.id
WHERE c.firstNotificationAfterConvocation = FALSE
AND c.status <> 'finished' AND c.date >= {$minDate} AND HOUR({$nowDate}) = 11

$nowDate和$minDate都是Datetime格式。

知道我做错了什么吗?

EN

回答 2

Stack Overflow用户

发布于 2014-04-10 18:44:14

在您的评论后编辑:

如果$dateTime只是一个格式化为2014-04-11 08:38:00的字符串,并且您想要一个小时,您可以使用以下命令:

代码语言:javascript
复制
echo date('H', strtotime($nowDate))

如果$nowDate是PHP DateTime对象,则可以使用以下内容

代码语言:javascript
复制
echo $nowDate->format('H');

它与MySQL无关:)

票数 0
EN

Stack Overflow用户

发布于 2014-04-11 06:49:38

我认为问题在于您需要将$nowDate转换为String,因为HOUR函数需要字符串作为param:

代码语言:javascript
复制
SELECT c FROM ProConvocationBundle:Convocation c
INNER JOIN ProCommunityBundle:Community co WITH co.id = c.community
INNER JOIN ProProposalBundle:Proposal p WITH p.convocation = c.id
WHERE c.firstNotificationAfterConvocation = FALSE
AND c.status <> 'finished' AND c.date >= {$minDate} AND HOUR({$nowDate->format('H:i:s')}) = 11

这应该能行

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22996272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档