这是我们在数据库中的一个查询,我试图在查询中理解一些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
答案 0 :(得分:0)
SYS_EXTRACT_UTC
从UTC
值datetime
或{{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>