我有一个值为'2015-01-26T20:29:51Z'的varchar2(20)列。我成功地用to_date(dEnteredDate,'YYYY-MM-DD"T"HH24:MI:SS"Z"')将其转换为日期
我希望通过减去我的SessionTimeZone(当前为-07:00)将其转换为本地时间,并且有一个带时间的常规日期,没有时区信息。
我在MS SQL中使用;
SET @diff = datediff(hh,GetUTCDate(), GetDate());
SET @dlocal = DATEADD(hh, @diff, @UTCDateTime)
如何在Oracle 10g中完成相同的操作?
你可以这样做:
select to_timestamp(dEnteredDate,'YYYY-MM-DD"T"HH24:MI:SS"Z"')- interval '7' hour from test_3;
这里,- interval '7' hour
将减去所需的时差,并给出没有时区的期望结果。
你可以这样做
select cast(to_timestamp_TZ(dEnteredDate||' UTC','YYYY-MM-DD"T"HH24:MI:SS"Z" tzr') at local as date)
from ...