gpt4 book ai didi

mysql - 具有计算间隔值的 Doctrine 2 DATE_ADD mysql 函数

转载 作者:可可西里 更新时间:2023-11-01 08:06:34 25 4
gpt4 key购买 nike

我有一个查询,它给我一个 unix 时间戳计算选择表字段的日期时间值,然后添加表的另一个值。查询类似于以下内容:

SELECT UNIX_TIMESTAMP(DATE_ADD(mydatetimefield, INTERVAL m.myfield1 + m.myfield2 MINUTE)) FROM mytable AS m

此查询从 phpMyAdmin 正确执行,但当我尝试将它与 Doctrine 2 的 createQueryBuilder 方法一起使用时,我在“myfield”处收到错误。好像不支持INTERVAL关键字后的计算值

Error: Expected Doctrine\ORM\Query\Lexer::T_COMMA, got 'm'

然后如何使用 doctrine 获得相同的查询结果?我使用查询构建器是因为我有一些命名参数

最佳答案

默认情况下,Doctrine 不支持特定供应商的所有功能,例如 DATE_ADD。但是,您可以使用自定义函数。该链接有一个专门用于添加日期的示例。

Extending DQL in Doctrine 2: User-Defined Functions

另一种选择,取决于查询的复杂性,只是在应用程序代码中处理它。如果您的 mydatetimefield 实际上是一个日期时间,Doctrine 会将其转换为返回对象中的 php DateTime

$myDateTimeField = $object->getMyDateTimeField();
$myDateTimeField->add(new DateInterval( $object->getMyField1() + $object->getMyField2() . 'M'));

最后,您也可以随时使用 dbal

关于mysql - 具有计算间隔值的 Doctrine 2 DATE_ADD mysql 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13503023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com