默认情况下,MySQL不支持设置“Asia/Shanghai”格式时区信息,如根据数据记录的时区信息去转换时间时,会发生意想不到的空。
“表达式1”会返回正常的时间转换结果:
-- 表达式1
SELECT CONVERT_TZ('2024-08-01 11:04:04', '+00:00', '+08:00');
“表达式2”会返回NULL:
-- 表达式2 SELECT CONVERT_TZ('2024-08-01 11:04:04', '+00:00', 'Asia/Shanghai');
这是因为默认在Community版本中并未提供时区信息。
解决步骤:
- 官网下载时区数据文件。
地址:MySQL :: Time zone description tables
下载POSIX standard版本即可。
-
解压下载到的文件,得到“timezone_posix.sql”数据文件。
- root连接并打开数据库“mysql”,远程客户端也是可以的。执行上述“timezone_posix.sql”文件,等待完成即可。
Here it is:
By Lionden.
参考:解决mysql设置时区时的错误Unknown or incorrect time zone: 'Asia/Shanghai' - teagueli - 博客园 (cnblogs.com)
标签:00,8.5,04,Shanghai,Asia,MySQL,表达式 From: https://www.cnblogs.com/lionden/p/18336400