Current path: home/webdevt/prestashop17/vendor/beberlei/doctrineextensions/src/Query/Mysql/
?? Go up: /home/webdevt/prestashop17/vendor/beberlei/doctrineextensions/src/Query
<?php
namespace DoctrineExtensions\Query\Mysql;
use Doctrine\ORM\Query\AST\Functions\FunctionNode;
use Doctrine\ORM\Query\Lexer;
use Doctrine\ORM\Query\Parser;
use Doctrine\ORM\Query\SqlWalker;
/**
* Converts timezones.
*
* Allows Doctrine 2 Query Language to execute a MySQL CONVERT_TZ function.
*
* @link http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_convert-tz
*/
class ConvertTz extends FunctionNode
{
protected $dateExpression;
protected $fromTz;
protected $toTz;
/**
* {@inheritdoc}
*/
public function getSql(SqlWalker $sqlWalker)
{
return sprintf(
'CONVERT_TZ(%s, %s, %s)',
$sqlWalker->walkArithmeticExpression($this->dateExpression),
$sqlWalker->walkStringPrimary($this->fromTz),
$sqlWalker->walkStringPrimary($this->toTz)
);
}
/**
* {@inheritdoc}
*/
public function parse(Parser $parser)
{
$parser->match(Lexer::T_IDENTIFIER);
$parser->match(Lexer::T_OPEN_PARENTHESIS);
$this->dateExpression = $parser->ArithmeticExpression();
$parser->match(Lexer::T_COMMA);
$this->fromTz = $parser->StringPrimary();
$parser->match(Lexer::T_COMMA);
$this->toTz = $parser->StringPrimary();
$parser->match(Lexer::T_CLOSE_PARENTHESIS);
}
}