我有一个名为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。)