昨晚我花了 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。