首页 >数据库 >mysql教程 >如何在 MySQL 选择查询中将 UTC 日期转换为本地时区?

如何在 MySQL 选择查询中将 UTC 日期转换为本地时区?

Linda Hamilton
Linda Hamilton原创
2024-11-26 04:21:09877浏览

How to Convert UTC Dates to Local Time Zone in MySQL Select Query?

在 MySQL 选择查询中将 UTC 日期转换为本地时区

问题

您正在使用包含“displaytime”列的 MySQL 查询以 UTC 格式存储时间戳。但是,您需要显示本地时区的时间戳。 CONVERT_TZ() 函数未按预期工作。

解决方案

要使用 CONVERT_TZ() 函数将 UTC 时间戳转换为本地时区,您必须指定两者的时区缩写UTC 和本地时区。正确的语法如下:

SELECT CONVERT_TZ(displaytime, 'UTC', 'LOCAL')

示例查询

WHERE displaytime >= '2012-12-01 00:00:00'
AND displaytime <= '2013-02-22 23:59:59'
AND ct.organizationId IN (
  SELECT t.organizationId
  FROM organization_ AS t
  JOIN organization_ AS p ON t.treePath LIKE CONCAT(p.treePath, '%')
  WHERE p.organizationId = 10707
)

修改后的查询:

WHERE CONVERT_TZ(displaytime, 'UTC', 'LOCAL') >= '2012-12-01 00:00:00'
AND CONVERT_TZ(displaytime, 'UTC', 'LOCAL') <= '2013-02-22 23:59:59'
AND ct.organizationId IN (
  SELECT t.organizationId
  FROM organization_ AS t
  JOIN organization_ AS p ON t.treePath LIKE CONCAT(p.treePath, '%')
  WHERE p.organizationId = 10707
)

疑难解答

如果 CONVERT_TZ() 不起作用,可能是由于时区表丢失或为空。您可以使用 mysql_tzinfo_to_sql 程序初始化时区表。

以上是如何在 MySQL 选择查询中将 UTC 日期转换为本地时区?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn