Symfony 在条令中使用间隔时出错
当我使用下面的查询(原则2)时,我得到了错误,不能在查询中使用间隔Symfony 在条令中使用间隔时出错,symfony,symfony-4.2,Symfony,Symfony 4.2,当我使用下面的查询(原则2)时,我得到了错误,不能在查询中使用间隔 $qb->andWhere("(pv.appointment_date + INTERVAL 48 HOUR) >= UTC_TIMESTAMP()"); 错误:预期的条令\ORM\Query\Lexer::T_CLOSE_括号,得到'48'条令是一种使用DQL的ORM,它与SQL不同。默认情况下,并非SQL中的所有函数都受doctine支持。DQL不支持INTERVAL。为此,您必须添加用户定义的函数 此git
$qb->andWhere("(pv.appointment_date + INTERVAL 48 HOUR) >= UTC_TIMESTAMP()");
错误:预期的条令\ORM\Query\Lexer::T_CLOSE_括号,得到'48'条令是一种使用DQL的ORM,它与SQL不同。默认情况下,并非SQL中的所有函数都受doctine支持。DQL不支持INTERVAL。为此,您必须添加用户定义的函数 此git repo中提供了一整套功能
并且上面的查询将变成
DATE\u ADD(pv.appointment\u DATE,INTERVAL 48 HOUR)>=UTC\u TIMESTAMP()
如果您想在mysql comumn字段上使用INTERVAL(在原则2,DQL中),您可以如下使用
$qb->andWhere("DATE_ADD(pv.appointmentDate,48,'hour') >= UTC_TIMESTAMP()");
...... DATE_ADD(p0_.appointmentDate, INTERVAL 48 HOUR) >= UTC_TIMESTAMP() .....
它将按如下方式打印SQL
$qb->andWhere("DATE_ADD(pv.appointmentDate,48,'hour') >= UTC_TIMESTAMP()");
...... DATE_ADD(p0_.appointmentDate, INTERVAL 48 HOUR) >= UTC_TIMESTAMP() .....
我不想冒犯你,但是你有没有查阅过关于这方面的文档?在,它非常清楚地告诉你可以在DQL中使用什么-这不是SQL