CDT在MySQL时区中不存在。

3

我最近使用这里提到的信息更新了MySql时区信息。

我面临的问题是,尽管数据库现在有许多时区的信息,但CDT不是其中之一。当我执行时区转换时:

使用 SELECT CONVERT_TZ(displaytime,'GMT','CDT'); 它返回null

其他转换可以正常工作,例如: SELECT CONVERT_TZ(displaytime,'GMT','MET'); 工作正常

我已经检查过时区表没有关于CDT的信息。但我不确定该如何解决。我应该手动将其添加到表中吗?还是应该使用其他来源导入时区信息?


你在问题中提供的MySQL手册页面实际上也包含了答案... - Shadow
SELECT CONVERT_TZ(UTC_TIMESTAMP(),'+00:00','-06:00'); 这将提供所需的转换。 - Paramesh Korrakuti
1个回答

4
您需要使用有效的IANA TZDB标识符作为时区ID。对于美国中部时间,请使用'America/Chicago'
应避免使用三字符时区缩写,因为只有少数在TZDB中,并且通常会存在歧义(CST也是中国标准时间,古巴标准时间等)。
此外,虽然UTCGMT可以使用,但完全限定的形式是Etc/UTC。实际上,您可以使用任何一个。

1
很好。补充一下Matt的回答,如果有人正在使用Spring Boot,则可以使用类似于以下内容(在application.properties中) - spring.datasource.url = jdbc:mysql://localhost: 3306 / dbname?serverTimezone = America / Chicago - Ajay Kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接