/src/Query/Postgresql/DatePart.php

http://github.com/beberlei/DoctrineExtensions · PHP · 36 lines · 27 code · 6 blank · 3 comment · 0 complexity · b331da6d9b5036b0140e4f8fab2832a8 MD5 · raw file

  1. <?php
  2. namespace DoctrineExtensions\Query\Postgresql;
  3. use Doctrine\ORM\Query\AST\Functions\FunctionNode;
  4. use Doctrine\ORM\Query\Lexer;
  5. use Doctrine\ORM\Query\Parser;
  6. use Doctrine\ORM\Query\SqlWalker;
  7. /**
  8. * @author Geovani Roggeo
  9. */
  10. class DatePart extends FunctionNode
  11. {
  12. public $dateString = null;
  13. public $dateFormat = null;
  14. public function parse(Parser $parser)
  15. {
  16. $parser->match(Lexer::T_IDENTIFIER);
  17. $parser->match(Lexer::T_OPEN_PARENTHESIS);
  18. $this->dateString = $parser->ArithmeticPrimary();
  19. $parser->match(Lexer::T_COMMA);
  20. $this->dateFormat = $parser->ArithmeticPrimary();
  21. $parser->match(Lexer::T_CLOSE_PARENTHESIS);
  22. }
  23. public function getSql(SqlWalker $sqlWalker)
  24. {
  25. return 'DATE_PART(' .
  26. $this->dateString->dispatch($sqlWalker) . ', ' .
  27. $this->dateFormat->dispatch($sqlWalker) .
  28. ')';
  29. }
  30. }