mysql add_date时区问题



i在我的数据库上存储带有UNIX Time-Stamp的事件当我想用FROM_UNIXTIMEDATE_ADD在MySQL中以DateTime的形式获取它们时,生成的不同值与当前位置的时区相等(UTC 3:30(。我必须使用DATE_ADD函数,因为FROM_UNIXTIME不适用于负时间戳。我如何解决此问题?预先感谢所有。

这是我的查询:

SELECT topic, `start`, FROM_UNIXTIME(`start`), DATE_ADD('1970-01-01 1:0:0', INTERVAL `start` SECOND) FROM uzr_event

这里是答案:结果

您的结果偏移的原因是,您要传递给DATE_ADD的字符串是由会话时区解释的,而不是UTC。

您可以在查询之前执行此操作:

SET time_zone = 'UTC';

,或者您可以将会话时区排除在方程式之外,然后更改以下内容:

DATE_ADD('1970-01-01 1:0:0', INTERVAL `start` SECOND)

DATE_ADD(FROM_UNIXTIME(0), INTERVAL `start` SECOND)

相关内容

  • 没有找到相关文章

最新更新