【发布时间】:2013-03-24 23:49:50
【问题描述】:
我在 php 脚本中运行以下 SQL 查询:
SELECT DATE_FORMAT(LogDateTime, '%k:%i') AS LogDate, Temp AS OutsideTemp, InsideTemp
FROM cumuluslog.monthly
WHERE LogDateTime > DATE_SUB(NOW(), INTERVAL 24 HOUR)
ORDER BY LogDateTime
问题是,我得到的不是过去的 24 小时,而是大约 34 小时,我检查了我的时区是否设置为 +10(我的本地时区)。当直接从 phpmyadmin 运行相同的查询时,它给了我正确的结果。
我尝试在 .php scriot 中设置时区:date_default_timezone_set('Australia/Brisbane );
似乎它正在运行最后一天的查询,然后在之后添加 +10 h 时区。我已经四处搜索,但似乎找不到有同样问题的人。
【问题讨论】:
-
用
SELECT @@global.time_zone, @@session.time_zone;检查mysql时区 -
它带有@@global.time_zone SYSTEM,@@session.time_zone SYSTEM。
-
谢谢达贡,这让我走上了正确的道路。