在这个查询中有一个错误。错误表示预期的已知函数,得到“小时”。如果删除此部分(AND HOUR({$nowDate}) = 11),则查询工作正常。
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格式。
知道我做错了什么吗?
发布于 2014-04-10 18:44:14
在您的评论后编辑:
如果$dateTime只是一个格式化为2014-04-11 08:38:00的字符串,并且您想要一个小时,您可以使用以下命令:
echo date('H', strtotime($nowDate))如果$nowDate是PHP DateTime对象,则可以使用以下内容
echo $nowDate->format('H');它与MySQL无关:)
发布于 2014-04-11 06:49:38
我认为问题在于您需要将$nowDate转换为String,因为HOUR函数需要字符串作为param:
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这应该能行
https://stackoverflow.com/questions/22996272
复制相似问题