这听起来很简单,但我无法弄清楚如何使用简单的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
我只需要一个简单的查询来返回GMT中的当前时间。在此先感谢您的帮助!
答案 0 :(得分:35)
只使用UTC(不受夏令时影响)
SELECT UTC_TIMESTAMP();
旧内容供参考:
这应该有效,但是
SELECT CONVERT_TZ(NOW(),'PST','GMT');
我的结果也是NULL。有趣的是,mysql文档中的示例也返回null
SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
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;
确定不是你想要的(它的4个查询,但只有一个选择: - )
答案 1 :(得分: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)
答案 2 :(得分:12)
注意: GMT可能有DST UTC没有DST
SELECT UTC_TIMESTAMP();
我在这里制作了一张备忘单:Should MySQL have its timezone set to UTC?
答案 3 :(得分:5)
获取当前UTC日期时间的万无一失的方法是:
SELECT CONVERT_TZ(NOW(), @@session.time_zone, '+0:00')
答案 4 :(得分:0)
在看到上面的所有答案并看到它转换为PST后不可靠之后,我只是使用了这个:
DATE_SUB(user_last_login,INTERVAL 7小时)
答案 5 :(得分:0)
这应该有效 - 我认为你的时区错误。以芝加哥为例
SELECT CONVERT_TZ(NOW(), 'America/Chicago', 'GMT')
答案 6 :(得分:0)
当源服务器时间戳未知但需要特定tz时,请执行以下操作:
select convert_tz(utc_timestamp(),'+05:00','+00:00')
这使用CST作为示例。 utc_timestamp将保证' +00:00'结果无论你在哪里查询它。 ' +05:00'是你想要的偏移量。 这在击中多个未知服务器时效果很好,并且它确保您返回结果将全部在一个共同的tz结果集中。
答案 7 :(得分:0)
我正在寻找我的时区,即GMT + 6(亚洲/达卡时区)
MySQL服务器在美国。以下对我有用。
SELECT CONVERT_TZ(UTC_TIMESTAMP(),' +06:00',' +00:00')
答案 8 :(得分:0)
这应该有效 SELECT date_add(UTC_TIMESTAMP(),间隔330分钟);
答案 9 :(得分:-1)
CONVERT_TZ功能没有错误。由于使用时区名称/缩写,因此获得NULL。除非你安装mysql.time_zone_name表,否则Mysql不知道这个' GMT' PST'等等是什么意思。但是,如果您使用数字,它将始终有效。
mysql> SELECT CONVERT_TZ(NOW(),'-08:00','+00:00');
返回NULL
phpMyAdmin - Error
The mbstring extension is missing. Please check your PHP configuration.
返回2016-06-24 17:58:33