没有正确返回的Mysql工作日

时间:2013-03-27 14:52:45

标签: php mysql

我正在尝试对一周中的特定日期进行过滤。

我的PHP代码包含类似

的内容
Select * from table_name where Weekday(DATE(project_surveydate)) = 0;

如果我在phpMyAdmin中使用上述行,则会返回周一所有记录的正确记录。

但是,当我通过我的php脚本运行该代码时,它会在星期日返回一些记录。

project_surveydate数据类型是时间戳。

我注意到它只返回21:00:00或更长时间的星期日。

例如,如果project_surveydate是(星期日)2012-05-03 13:25:14,则不会包含它。如果是2012-05-03 21:25:14,它将被包含在结果中。

我真的不知道造成这种情况的原因。 任何帮助将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

看起来您的服务器时区正在影响结果。您可以基于每个连接设置时区:

SET time_zone = '+00:00';

MySQL将TIMESTAMP值从当前时区转换为UTC进行存储,然后从UTC转换回当前时区进行检索。您可以通过多种方式更改mysql的默认时区,如下所示:http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html