如何在查询中选择小时和分钟

时间:2014-07-30 17:19:52

标签: php mysql sql symfony

我需要从查询中的日期时间中提取小时和分钟。

在MySQL中,我有它     SELECT id as id, date_format(etadate, '%m/%d/%Y') as etadate, date_format(etadate, '%H') as etahour, date_format(etadate, '%i') as etamin, ...

但是,当我尝试执行类似的查询时,Doctrine无法识别date_format

 SELECT
    cfs.id as cfsid, cfs.etadate as etadate, 
    date_format(etadate, "%H") as etahour,
    date_format(etadate, "%i") as etamin
 FROM
    CFSBundle:Cfs cfs

2 个答案:

答案 0 :(得分:1)

您必须通过创建扩展程序或使用为您添加此扩展名的捆绑包来添加date_format Doctrine。

要创建自己的扩展程序,请在此处查看示例 - https://github.com/beberlei/DoctrineExtensions/blob/master/lib/DoctrineExtensions/Query/Mysql/DateFormat.php

如何注册扩展程序 - http://symfony.com/doc/current/cookbook/doctrine/custom_dql_functions.html

答案 1 :(得分:0)

DATE_FORMAT以及其他各种功能未包含在DQL中。因此,您需要使用Doctrine的NativeSQL函数来编写SQL语句或编写用户定义的函数,以便Doctrine在使用DQL编写时识别DATE_FORMAT,并且可以将其成功转换为SQL。

请参阅:: Using DATE_FORMAT in Doctrine

Date Format Class