70
$ 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?

Mike Doe
  • 16,349
  • 11
  • 65
  • 88
Eduardo Moniz
  • 2,095
  • 3
  • 18
  • 27

2 Answers2

145

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

Mike Doe
  • 16,349
  • 11
  • 65
  • 88
BenMorel
  • 34,448
  • 50
  • 182
  • 322
2

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..

Andrew Zhilin
  • 1,654
  • 16
  • 11