首页 > 解决方案 > 如何在 oracle 中获取不同的时区日期?

问题描述

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

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

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

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

标签: sqloracleoracle11g

解决方案


用于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;

推荐阅读