尝试将 UNIX 时间戳转换为带时区的 Oracle 时间戳。
期望看到不同的输出,但日期时间部分是相同的。
什么是拧?
select (timestamp '1970-01-01 00:00:00' + numtodsinterval(1204104116656/1000,'second')) at time zone tz_offset('EST') from dual;
输出:2008 年 2 月 27 日09.21.56.656000000 上午-05:00
select (timestamp '1970-01-01 00:00:00' + numtodsinterval(1204104116656/1000,'second')) at time zone tz_offset('PST') from dual;
输出:2008 年 2 月 27 日09.21.56.656000000 上午-07:00
为什么日期/时间部分是相同的? Oracle不做调整吗?
Unix时间戳是从1970-01-01 00:00:00 UTC
。当你刚做的时候timestamp '1970-01-01 00:00:00'
Oracle 采用您当地的时区!
你必须这样做:
(TIMESTAMP '1970-01-01 00:00:00' AT TIME ZONE 'UTC' +
numtodsinterval(1204104116656/1000,'second')) AT time zone tz_offset('PST');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)