我遇到了一个小问题:在我的表中有一些DATETIME-Fields,其中日期保存为UTC日期。
现在我想将它用于我的where子句,但是mysql应该使用保存的日期时间并将其从UTC转换为服务器时区 - 在这种情况下为+2小时。
我该怎么做?
答案 0 :(得分:0)
解决方案:在更新语句中添加两个小时来更新DATETIME值。
UPDATE table_name SET date_time_col = DATE_ADD(date_time_col, INTERVAL 2 HOUR);
现在所有值都在所需的当地时间内(比UTC早两个小时)。
或者,如果您需要保留UTC中的值,但在查询时只切换到本地,可能是这样:
SELECT * FROM table_name WHERE DATE_ADD(date_time_col, INTERVAL 2 HOUR) = 'input query date';
答案 1 :(得分:0)
感谢您的回答。
与此同时,我解决了这个问题:
CONVERT_TZ(`date_time_col`,'+00:00',@@global.time_zone) < NOW()