How can I use now() in Doctrine 2 DQL?

MysqlSymfonyDoctrine OrmDql

Mysql Problem Overview


$ php app/console doctrine:query:dql 'SELECT NOW()'

> [Doctrine\ORM\Query\QueryException] > [Syntax Error] line 0, col 7: Error: Expected known function, got 'now'

How can I use MySQL's NOW() function with Doctrine's DQL?

Mysql Solutions


Solution 1 - Mysql

The equivalent of MySQL's NOW() is Doctrine DQL's CURRENT_TIMESTAMP().

CURRENT_DATE() only returns the date part.

Reference: DQL date/time related functions

Solution 2 - Mysql

CURRENT_TIMESTAMP() uses database timezone, which could lead to weird issues. More simple way - you can use parameter and bind new \DateTime() to it (so you will use php timezone)

It will not work for command line of course, but I suppose that you plan to use it in controller/service/repository/etc..

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionEduardoView Question on Stackoverflow
Solution 1 - MysqlBenMorelView Answer on Stackoverflow
Solution 2 - MysqlAndrew ZhilinView Answer on Stackoverflow