我们想获取今天添加的所有行,我们有列名 dnt(timestamp),但我们的时区比服务器时区早 12 小时。那么什么是 SQL 查询来获得当前结果。我们目前正在使用以下...
SELECT * FROM messages WHERE user = '$user' AND DATE(dnt) = CURDATE();
但由于时区差异,它没有给出正确的结果。
谢谢。
最佳答案
我建议所有日期都应存储在 GMT 时区中。然后在显示时在 View 中转换。这样,当您需要查询某个日期时,首先将客户端日期转换为 GMT 并将其直接传递给您的 SQL 查询。 SQL 服务器有一些函数可以获取 GMT 日期而不是服务器日期。您还可以将 GMT 时区的当前日期作为查询参数传递,而不是使用 SQL 函数(使用 PHP 函数获取 gmt 日期)。
参见:gmmktime例如
关于php - 选择所有日期等于今天但时区差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5218643/