我有一个包含日期列的表.我认为该列中的日期以UTC格式保存.
我想在检索日期时以当地时间打印.这意味着当我从德国调用日期时,结果应该是这样的:
2015-04-29 11:24:06 +0200UTC EUROPE/BERLIN
Run Code Online (Sandbox Code Playgroud)
我尝试了以下sql:
SELECT TO_CHAR(CAST(dateColum as TIMESTAMP WITH LOCAL TIME ZONE), 'YYYY-MM-DD HH24:MI:SS TZR') from myTable;
Run Code Online (Sandbox Code Playgroud)
结果如下:
2015-04-29 11:24:06 EUROPE/BERLIN
Run Code Online (Sandbox Code Playgroud)
缺少+/-偏移量.
任何的想法?
MT0*_*MT0 10
Oracle安装程序:
CREATE TABLE table_name ( value ) AS
SELECT DATE '2016-07-13' FROM DUAL;
Run Code Online (Sandbox Code Playgroud)
查询:
SELECT TO_CHAR(
FROM_TZ( CAST( value AS TIMESTAMP ), 'UTC' )
AT TIME ZONE 'EUROPE/BERLIN',
'YYYY-MM-DD HH24:MI:SS TZH:TZM TZR'
) AS berlin_time
FROM table_name;
Run Code Online (Sandbox Code Playgroud)
输出:
BERLIN_TIME
----------------------------------------
2016-07-13 02:00:00 +02:00 EUROPE/BERLIN
Run Code Online (Sandbox Code Playgroud)
查询2:
SELECT TO_CHAR(
FROM_TZ( CAST( value AS TIMESTAMP ), 'UTC' ) AT LOCAL,
'YYYY-MM-DD HH24:MI:SS TZH:TZM TZR'
) AS local_time
FROM table_name;
Run Code Online (Sandbox Code Playgroud)
输出:
LOCAL_TIME
----------------------------------------
2016-07-13 02:00:00 +02:00 EUROPE/BERLIN
Run Code Online (Sandbox Code Playgroud)