在 MySQL 选择查询中将 UTC 日期转换为本地时区
问题
A MySQL查询需要将存储 UTC 时间戳的“displaytime”列转换为本地时区。但是,使用 CONVERT_TZ() 函数不会产生预期的结果。
答案
1。验证错误消息
检查错误消息以确定 CONVERT_TZ() 不起作用的原因。
2.确保兼容的列类型
CONVERT_TZ() 要求输入列是时间戳或日期数据类型。检查“displaytime”列的数据类型。
3.使用正确的语法
CONVERT_TZ() 的正确语法是:
CONVERT_TZ(timestamp, source_timezone, destination_timezone)
4。用法示例
例如,要将显示时间从 UTC 转换为美国东部时间 (-05:00 GMT),请使用:
SELECT CONVERT_TZ(displaytime, 'UTC', 'America/New_York');
5。检查时区表
确保 MySQL 时区表已正确初始化。运行以下命令进行检查:
SELECT * FROM mysql.time_zone; SELECT * FROM mysql.time_zone_name;
6.加载时区数据
如果时区表为空,请使用mysql_tzinfo_to_sql程序加载它们:
mysql_tzinfo_to_sql /usr/share/zoneinfo
以上是如何在 MySQL 选择查询中将 UTC 日期转换为本地时区?的详细内容。更多信息请关注PHP中文网其他相关文章!