我在我的一个查询中使用了这个Where条件与MySql数据库。我的问题是,我有一个显示时间列在我的表,但该表列显示的数据在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
字符串
样本数据a
的
4条答案
按热度按时间rsl1atfo1#
SELECT CONVERT_TZ()将工作,但它不为我工作。
为什么,你得到了什么错误?
字符串
如果列类型为时间戳或日期,则应该有效
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_convert-tz
测试它是如何工作的:
型
检查您的时区表
型
http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html
如果这些表是空的,你还没有初始化你的时区表。根据上面的链接,你可以使用
mysql_tzinfo_to_sql
程序来加载时区表。请尝试型
或者如果没有工作阅读更多:http://dev.mysql.com/doc/refman/5.5/en/mysql-tzinfo-to-sql.html
4ktjp1zp2#
在我的情况下,服务器上没有时区,这很好用:
字符串
注意:global.time_zone使用服务器时区。您必须确保它具有所需的时区!
rqqzpn5f3#
字符串
将“+05:30”替换为所需的时区。参见此处-https://stackoverflow.com/a/3984412/2359994
格式化为所需的时间格式,例如:
型
你会得到类似的-> Dec 17 2014 10:39:56 AM
r8uurelv4#
使用“CST”和“EST”等3个字符的时区不一致(例如,我的
mysql.time_zone_name
有“EST”,但没有“CST”)。字符串
然后使用“Name”值作为第二个参数:
型
这种方法比从UTC硬编码一个数字偏移更好,因为这个数字会根据夏令时是否有效而改变。