Rus*_* C. 25 mysql datetime gmt convert-tz
这听起来很简单但我无法弄清楚如何使用简单的SELECT语句来返回GMT中的当前时间.
我一直在尝试使用CONVERT_TZ()根据服务器时区和GMT时区将NOW()转换为GMT,但由于某种原因,当我放入文本时区时它返回NULL.我得到结果的唯一方法是实际放入偏移量,这对于应该是一个非常简单的操作来说太复杂了.这就是我的意思:
mysql> SELECT CONVERT_TZ(NOW(),@@global.system_time_zone,'GMT');
NULL
mysql> SELECT CONVERT_TZ(NOW(),'PST','GMT');
NULL
mysql> SELECT CONVERT_TZ(NOW(),'-08:00','+00:00');
2010-02-13 18:28:22
Run Code Online (Sandbox Code Playgroud)
我只需要一个简单的查询来返回GMT中的当前时间.在此先感谢您的帮助!
Ruf*_*nus 36
只使用UTC(不受夏令时影响)
SELECT UTC_TIMESTAMP();
Run Code Online (Sandbox Code Playgroud)
旧内容供参考:
这应该工作,但有
SELECT CONVERT_TZ(NOW(),'PST','GMT');
Run Code Online (Sandbox Code Playgroud)
我的结果也是NULL.有趣的是,mysql文档中的示例也返回null
SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
Run Code Online (Sandbox Code Playgroud)
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_convert-tz
似乎你在mysql中发现了一个错误.(感谢+ Stephen Pritchard)
你可以尝试:
SET @OLD_TIME_ZONE=@@TIME_ZONE;
SET TIME_ZONE='+00:00';
SELECT NOW();
SET TIME_ZONE=@OLD_TIME_ZONE;
Run Code Online (Sandbox Code Playgroud)
确定不是你想要的(它的4个查询,但只有一个选择:-)
小智 13
CONVERT_TZ()中没有错误
要使用CONVERT_TZ(),您需要安装时区表,否则MySql返回NULL.
从CLI以root身份运行以下命令
#mysql_tzinfo_to_sql/usr/share/zoneinfo | mysql -u root mysql
请参阅http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html
谢谢
http://www.ArcanaVision.com(SJP 2011-08-18)
Tim*_*nen 12
注意:GMT可能有DST UTC没有DST
SELECT UTC_TIMESTAMP();
Run Code Online (Sandbox Code Playgroud)
我在这里做了一个备忘单:MySQL的时区应该设置为UTC吗?
获取当前UTC日期时间的确定方式是:
SELECT CONVERT_TZ(NOW(), @@session.time_zone, '+0:00')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58282 次 |
| 最近记录: |