0

我在 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 时区。我已经四处搜索,但似乎找不到任何有同样问题的人。

4

1 回答 1

0

听起来您的 MySQL 服务器设置了错误的时区。您可以正确设置系统时间并重新启动 MySQL,或者告诉它在运行时使用哪个区域:

mysql_query("SET time_zone = 'Australia/Brisbane'");
mysql_query("YOUR QUERY HERE");
于 2013-03-25T00:17:06.377 回答