【发布时间】:2013-02-07 16:39:43
【问题描述】:
我在 MySql 数据库的一个查询中使用此 Where 条件。我的问题是我的表中有一个显示时间列,但该表列以 UTC 时间显示数据。我想将该显示时间列转换为本地时区。所以我如何从查询本身提供这个设施。
我已经仔细检查了这些东西,因此我知道像 SELECT CONVERT_TZ() 这样的东西可以解决这个问题。但它不适合我。
这是我的查询,我需要将显示时间转换为本地时区...所以有人可以指导我吗?
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
样本数据
【问题讨论】:
-
看起来你的 mysql 时区表是空的。您必须运行 mysql_tzinfo_to_sql 命令才能使 CONVERT_TZ() 正常工作。
-
哪里可以获得mysql_tzinfo_to_sql命令?
-
如果你有偏移量,你可以使用这个函数 DATE_ADD(displaytime, INTERVAL {+-YOUR_OFFSET_IN_MINUTES} MINUTE)。 DATE_SUB 不需要使用 IF/ELSE 语句,始终使用 DATE_ADD,sub 或 add 将根据 offcet 值应用,可以是正数或负数。
标签: mysql utc localtime convert-tz