2016-03-08 70 views
0

我在PostgreSQL上运行的SQL如下:PostgreSQL的到Oracle SQL进行时区

select * 
from table1 
where ts >= '2016-12-08 23:01:48 CST'::timestamp with timezone 

凡datetime值将被用户给出。 我需要在Oracle中运行此查询,但是我发现很难在Oracle中找到确切的功能。

我试图在甲骨文12C以下几点:

select to_timestamp_tz('2016-12-08 23:01:48','yyyy-mm-dd hh24:mi:ss') as c FROM dual; 

但其给出的结果:

2016年12月8日23时01分48秒格林尼治标准时间06:00

请提供任何建议。

谢谢。

回答

0

必须包括时区区域中的时间戳,比如像这样:

SELECT TO_TIMESTAMP_TZ('2016-12-08 23:01:48 CST','yyyy-mm-dd hh24:mi:ss TZR') AS c 
FROM dual; 

,或者你也可以写

SELECT TO_TIMESTAMP('2016-12-08 23:01:48','yyyy-mm-dd hh24:mi:ss') AT TIME ZONE 'CST' AS c 
FROM dual; 
+0

但它给我的输出: 2016年12月8日23 :01:48 GMT – AIR

+0

你确定吗?对于这两个查询,我都会得到'08.12.2016 23:01:48.000000000 -06:00'。 –

+0

是的。这就是我从早上开始面临的问题:( 我使用的是Oracle 12.1 – AIR