【发布时间】:2012-10-23 18:29:21
【问题描述】:
我昨晚花了 8 个多小时检查所有文档,浏览各种帖子等,我几乎解决了我的问题,但仍然缺少一些我无法理解的东西。
我有一个表,其中存储了带有 unix 时间戳的各种用户提交(例如 1351867293)。我正在提取这些信息并对其进行计数,以获得“今天”、“昨天”、“本周”等提交的总数。
我使用的代码(用于“今天的提交”)是:
WHERE DATE(from_unixtime(comment_date)) = CURRENT_DATE";
到目前为止一切顺利,但存在时间偏移,数据显示不正确。 stackoverflow 上的用户建议使用 CONVERT_TZ 来固定偏移量。
这就是我卡住的地方。我位于 CST 时区,我的服务器似乎位于 EST 时区。所以我使用了这段代码
WHERE DATE(CONVERT_TZ(from_unixtime(comment_date), 'EST', 'CST')) = CURRENT_DATE";
...但它只显示“0”,尽管我今天有提交。我尝试了不同的时区,但结果它们都给了我“0”。当我用数字替换 EST 和 CST 时,例如:
WHERE DATE(CONVERT_TZ(from_unixtime(comment_date), '+00:00', '+07:00')) = CURRENT_DATE";
...我得到一个数字输出,但数字不正确。我尝试了很多组合,包括 +08:00、-05:00,但似乎没有任何效果。
基本上我要问的是,为了得到正确的结果,我必须将哪些值作为这两个数字?我网站上的其他所有内容都可以在我的时区 (CST) 中正确显示,我只遇到了这个查询的问题。
如果有帮助,我的服务器的 IP 是 50.116.13.130。
【问题讨论】:
标签: php mysql date offset convert-tz