gpt4 book ai didi

php - Yii CDbCommand 返回与 MySQL 客户端不同的值

转载 作者:行者123 更新时间:2023-11-30 22:17:40 24 4
gpt4 key购买 nike

我有命令:

$night_command = Yii::app()->db->createCommand()
->select('COUNT(d1.id)')
->from('diary1 as d1')
->where('d1.deleted = 0 AND TIME(d1.datetime_created) BETWEEN "04:59:00" AND "17:59:00"');
$night_command->getText(); // this is query that i copy to client app
$night_command->queryScalar(); // returns 4

$night_command->getText() 返回查询:

SELECT COUNT(d1.id)
FROM `diary1` `d1`
WHERE d1.deleted = 0 AND TIME(d1.datetime_created) BETWEEN "04:59:00" AND "17:59:00"

当我复制并运行此查询时 - 我得到 25(不是 4)。为什么?似乎比较时间是个问题,因为没有它一切都很好。 datetime_created 列具有 DATETIME 类型。

最佳答案

问题出在 db 组件的配置中。它有一个参数

'initSQLs' => array(
'SET time_zone = "+10:00"',
),

DATETIME 列添加 +10(在我的例子中为 +8)小时。例如。如果在数据库中我有值“11.01.2016 13:21:05”(我的本地时区是 UTC+2),那么 Yii 返回值“11-01-2016 21:21:05”(对于 UTC+10)。所以,或者注释这个参数或者记住,DATETIMETIME 列在 Yii 中会有不同的值。

关于php - Yii CDbCommand 返回与 MySQL 客户端不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37707258/

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