2

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

我的代码:

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

3 回答 3

3

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

于 2013-06-02T13:15:31.657 回答
1

datetimemysql 数据类型不关心time_zone指令。只做timestamp_

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

于 2013-06-02T13:05:34.877 回答
0

您可以在MySQL 文档中找到有关日期和时间类型的信息:

MySQL 将 TIMESTAMP 值从当前时区转换为 UTC 进行存储,并从 UTC 转换回当前时区进行检索。(这不会发生在其他类型,例如 DATETIME。)

于 2013-06-02T13:12:00.387 回答