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中一样的时间戳?
发布于 2019-04-16 20:29:21
Unix时间戳是从1970-01-01 00:00:00 UTC开始的秒数,它实际上是您本地时区(或MySQL服务器所在的时区)中的1970-01-01 01:00:00。看起来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;https://stackoverflow.com/questions/55708078
复制相似问题