Oracle SYS_EXTRACT_UTC试图了解

时间:2014-11-04 07:19:23

标签: oracle

这是我们在数据库中的一个查询,我试图在查询中理解一些UTC转换。

有人可以简单解释下面的查询在做什么吗?

SELECT 
 CAST (SYS_EXTRACT_UTC (CAST ( (BEGIN_DATE - (3 / 24)) AS TIMESTAMP)) AS DATE) BEGIN_DATE
FROM offer o
WHERE mask       = 'OK'

转换后输出:06-SEP-11 04:00:00

SELECT 
   BEGIN_DATE
FROM offer o
WHERE mask       = 'OK'

转换前输出:06-SEP-11 00:00:00

1 个答案:

答案 0 :(得分:0)

SYS_EXTRACT_UTCUTCdatetime或{{1}中提取time zone offset (协调世界时 - 以前格林威治标准时间) }}

例如,

time zone region name

在您的情况下,您的时区为SQL> SELECT SYS_EXTRACT_UTC(TIMESTAMP '2014-11-05 12:00:00.00 -08:00') as dt 2 FROM DUAL; DT --------------------------------------------------------------------------- 05-NOV-14 08.00.00.000000000 PM SQL> 。因此,使用了-08:00

例如,我的时区为-3/24。当前时间是,

+05:30

等效的UTC时间是,

SQL> select to_char(sysdate, 'mm/dd/yyyy hh:mi:ss am') dt from dual;

DT
----------------------
11/04/2014 01:12:21 pm

SQL>