如何在oracle中获得不同的时区日期?

时间:2018-04-30 09:57:06

标签: sql oracle oracle11g

我想知道南非目前的日期和时间。

如何查看oracle中不同时区的当前时间和日期?

我会在数据表中添加时区值,从中我可以得到当前的日期和时间吗?

我有一张国家/地区表,我会根据国家/地区保存时区。现在在程序中我必须检查来自其他表的一个日期对所有国家是当前日期与否。 所以查询:SELECT SYSTIMESTAMP AT TIME ZONE' Africa / Johannesburg' 来自双重;不会解决我的问题。

2 个答案:

答案 0 :(得分:4)

使用SYSTIMESTAMP获取当前系统时间戳,AT TIME ZONE '<time zone>'更改为其他时区:

SELECT SYSTIMESTAMP AT TIME ZONE 'Africa/Johannesburg'
FROM   DUAL;

可以使用此查询找到时区名称列表:

SELECT *
FROM gv$timezone_names;

您甚至可以将时区名称作为变量传递,而不是使用硬编码的文本文字:

SELECT TZNAME,
       SYSTIMESTAMP AT TIME ZONE TZNAME AS current_time
FROM   gv$timezone_names;

答案 1 :(得分:2)

select 
       SYSTIMESTAMP at time zone 'Africa/Johannesburg' south_africa_time
from dual;

您可以在此链接中引用所有时区值

TIME Zones