gpt4 book ai didi

mysql - Unix时间戳转换在Mysql和Oracle中是不同的

转载 作者:行者123 更新时间:2023-11-29 05:49:34 25 4
gpt4 key购买 nike

Unix 时间戳转换在 mysql 和 oracle 中给出两个不同的结果

select FROM_UNIXTIME(1387444958) from dual;

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

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 中获得相同的时间戳。

最佳答案

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

对于 Oracle 你可以使用这个函数:

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 时间,那么您必须运行

select 
CONVERT_TZ(FROM_UNIXTIME(1387444958),'{your local timezone}','UTC')
from dual;

关于mysql - Unix时间戳转换在Mysql和Oracle中是不同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55708078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com