当我在查询下面运行时,
SELECT DATE_FORMAT(CURRENT_TIMESTAMP, '%Y-%m-%d %h:%i:%s %p')
它将时间戳记返回
2016-09-24 05:16:53 AM
但是我的电脑是05:16:53 PM。
我也运行以下查询以确保时区设置为 SYSTEM
SELECT @@global.time_zone;
SELECT @@session.time_zone;
可能是什么问题?我想要检索2个小时的记录,但由于这个问题,我被困住了。
以下是我的查询,
SELECT * FROM myTable WHERE NOW() < DATE_ADD(my_field_time,INTERVAL 2 HOUR)
由于 NOW 落后12小时,因此无法正常工作。
更新: Mysql服务器在我的电脑上,版本5.5.28,系统时区由mysql服务器报告,操作系统:Windows 10
答案 0 :(得分:1)
试试这个
SET time_zone = yourtimezone //eg '+05:30'
之后尝试查询
SELECT DATE_FORMAT(CURRENT_TIMESTAMP, '%Y-%m-%d %h:%i:%s %p')
请注意SET time_zone = yourtimezone
仅适用于当前会话。
要了解会话时区中当前日期时间与UTC中当前日期时间之间的差异,请使用以下查询
SELECT TIMEDIFF(CURRENT_TIMESTAMP, UTC_TIMESTAMP)
如果您的查询只需要特定的解决方法,因为NOW落后12小时,请尝试查询
SELECT * FROM myTable WHERE NOW() + INTERVAL 12 HOUR < DATE_ADD(my_field_time,INTERVAL 2 HOUR)