首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Mysql FROM_UNIXTIME as UTC

Mysql FROM_UNIXTIME as UTC
EN

Stack Overflow用户
提问于 2013-08-16 23:19:33
回答 4查看 34.9K关注 0票数 36

我怎样才能得到

代码语言:javascript
复制
FROM_UNIXTIME

在mysql中是UTC/GMT吗?日期以连接的时区返回。

我不想更改连接的时区。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-08-16 23:41:26

您最好提前设置时区:

代码语言:javascript
复制
SET time_zone='UTC';
select FROM_UNIXTIME(1277942400);

原因是涉及本地时区的转换可能会有损失。在docs here中有一个这样的例子(请参阅UNIX_TIMESTAMP()部分下以“注意:”开头的第4段)

票数 32
EN

Stack Overflow用户

发布于 2013-08-16 23:21:46

我的解决方案是

代码语言:javascript
复制
SELECT CONVERT_TZ(FROM_UNIXTIME(1277942400), @@session.time_zone,'UTC')

如果CONVERT_TZ返回null,请确保mysql的时区表已填满:

代码语言:javascript
复制
zypper install mysql-community-server-tools
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
票数 25
EN

Stack Overflow用户

发布于 2017-07-19 21:06:34

我知道这个问题已经得到了回答,但我仍然想做出贡献:

如果你不想让你的服务器使用NOW()FROM_UNIXTIME()等函数来产生协调世界时,你必须像@Matt Johnson所说的那样设置time_zone

有一件事他没有提到:SET time_zone = timezone;只为当前连接设置时区。如果您希望这些函数在默认情况下返回/转换您的日期为UTC,那么可以使用SET GLOBAL time_zone = '+00:00',这样您就不必在每次保存基于UTC的日期时都设置时区。

检查您当前的time_zone设置:SELECT @@global.time_zone, @@session.time_zone;

MySQL :: MySQL 5.5 Reference Manual :: 10.6 MySQL Server Time Zone Support

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18276768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档