0

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

我的 php 代码包括类似

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

如果我在 phpMyAdmin 中使用上述行,它将返回星期一的所有记录的正确记录。

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

project_surveydate 数据类型是时间戳。

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

例如,如果 project_surveydate 是 (Sunday) 2012-05-03 13:25:14,它将不包括在内。如果是 2012-05-03 21:25:14,它将包含在结果中。

我真的不知道这是什么原因造成的。任何帮助将不胜感激。

谢谢

4

1 回答 1

0

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

SET time_zone = '+00:00';

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

于 2013-03-27T15:02:59.803 回答