DATE_SUB()
函数本身不能直接处理时区转换
SELECT CONVERT_TZ(DATE_SUB('2021-10-01 12:00:00', INTERVAL 5 HOUR), 'UTC', 'Asia/Shanghai');
在这个示例中,我们首先使用 DATE_SUB()
函数从 UTC 时间 ‘2021-10-01 12:00:00’ 中减去 5 小时。然后,我们使用 CONVERT_TZ()
函数将结果转换为 ‘Asia/Shanghai’ 时区。
请注意,您需要确保 MySQL 服务器已加载时区表。如果尚未加载,可以使用以下命令加载:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
这将从系统的时区文件中提取时区信息并将其导入到 MySQL 数据库中。