我在 MySql 数据库的一个查询中使用此Where 条件。我的问题是我的表中有一个显示时间列,但该表列显示 UTC 时间的数据。我想将该显示时间列转换为当地时间Zone.so 我如何从查询本身提供此功能。
我凝视着这些东西,据此我知道类似的东西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
SAmple DAta
SELECT CONVERT_TZ() 可以解决这个问题,但它对我不起作用。
为什么,你得到什么错误?
SELECT CONVERT_TZ(displaytime,'GMT','MET');
如果您的列类型是时间戳或日期,应该可以工作
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_convert-tz
测试它是如何工作的:
SELECT CONVERT_TZ(a_ad_display.displaytime,'+00:00','+04:00');
检查您的时区表
SELECT * FROM mysql.time_zone;
SELECT * FROM mysql.time_zone_name;
http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html
如果这些表为空,则表明您尚未初始化时区表。根据上面的链接您可以使用mysql_tzinfo_to_sql
程序加载时区表。请尝试这个
shell> mysql_tzinfo_to_sql /usr/share/zoneinfo
或者如果不起作用,请阅读更多内容:http://dev.mysql.com/doc/refman/5.5/en/mysql-tzinfo-to-sql.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)