首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unix时间戳转换在Mysql和Oracle中是不同的

问Unix时间戳转换在Mysql和Oracle中是不同的
EN

Stack Overflow用户
提问于 2019-04-16 20:23:02
回答 1查看 101关注 0票数 1

Unix时间戳转换在mysql和oracle中产生两种不同的结果

代码语言:javascript
复制
select FROM_UNIXTIME(1387444958) from dual;

输出:2013-12-19 10:22:38

代码语言:javascript
复制
select to_char(to_date('01/01/1970 00:00:00','DD/MM/YYYY HH24:MI:SS')+ (1387444958/86400),'YYYY-MM-DD HH24:MI:SS')from dual;

输出: 2013-12-19 09:22:38

有没有人能帮我从oracle获取和我在MySql中一样的时间戳?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-16 20:29:21

Unix时间戳是从1970-01-01 00:00:00 UTC开始的秒数,它实际上是您本地时区(或MySQL服务器所在的时区)中的1970-01-01 01:00:00。看起来FROM_UNIXTIME考虑到了这一点。

对于Oracle,您可以使用此函数:

代码语言:javascript
复制
FUNCTION UnixTime2Timestamp(UnixTime IN NUMBER) RETURN TIMESTAMP IS
BEGIN
    RETURN (TIMESTAMP '1970-01-01 00:00:00 UTC' + UnixTime * INTERVAL '1' SECOND) AT LOCAL;
END UnixTime2Timestamp;

我假设如果您想要获取MySQL的UTC时间,那么您必须运行

代码语言:javascript
复制
select 
   CONVERT_TZ(FROM_UNIXTIME(1387444958),'{your local timezone}','UTC') 
from dual;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55708078

复制
相关文章

相似问题

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