设置时区在mysql不工作的datetime


Set timezone in mysql not working on datetime?

我有一个名为creation_date的日期时间列。当我使用SET时区时,它仍然显示相同的结果。我做错了什么?

我代码:

SET time_zone = "America/Los_Angeles";
SELECT *  FROM `enswitch_mobile_users` WHERE `creation_date` > '2013-06-02 00:00:00';

就我个人而言,我会坚持使用DATETIME,并始终使用UTC_TIMESTMP()而不是NOW()或类似的。然后,当从数据库读取日期时,可以根据需要使用CONVERT_TZ()进行转换。

datetime mysql数据类型不关心time_zone指令。只有timestamp

所以解决方案-将类型更改为timestamp

您可以在MySQL文档中找到日期和时间类型:

MySQL将TIMESTAMP值从当前时区转换为UTC存储,并从UTC返回到当前时区进行检索。(对于其他类型,如DATETIME,则不会发生这种情况。)