gpt4 book ai didi

MySQL UTC 到本地时区

转载 作者:行者123 更新时间:2023-11-29 06:21:02 25 4
gpt4 key购买 nike

我将 mysql 用于我的应用程序,并且该应用程序是工作时间驱动的。

现在我系统的时间是

8:53 PM. (EST)

select now();   -> returns 2015-10-21 20:52:48 

select utc_timestamp(); -> returns 2015-10-22 00:53:50

我想将时间转换为用户时区特定时间。

所以使用下面的查询来转换为用户特定的时区。

select CONVERT_TZ(utc_timestamp(),'+00:00','-05:00');

上面的查询返回

2015-10-21 19:55:49

它考虑了夏令时。但是,我希望这能返回我系统中的当前时间 > 2015-10-21 20:55:49。

有没有办法指示 convert tz 查询不考虑夏令时?

SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);

上面的查询返回

-04:00:00

我预计这会返回 -05:00,因为我在美国东部时间。

谢谢

最佳答案

实际上,你把它倒过来了。当您指定 -05:00 时,考虑夏令时。它不能,因为您只提供了一个偏移量。

稍后,您说您希望它返回 -05:00,但如果您使用的是美国东部时间,那么当前(直到 2015 年 11 月 1 日)夏令时有效。您处于美国东部时间,即 -04:00

所以 SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP); 给出了正确的结果。如果您希望 CONVERT_TZ 给出正确的结果,那么您可以这样做:

select CONVERT_TZ(utc_timestamp(),'+00:00','SYSTEM');

传递 SYSTEM 使用系统的本地时区,这正是您所要求的。但是,通常最好使用命名 时区,例如America/New_York。要使用这些,请确保为 time zone support 正确设置了 MySQL 安装.

关于MySQL UTC 到本地时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33271745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com