有关如何将VARCHAR
格式2016-03-24T11:31:31+0100
转换为timestamp/time zone
“FIELD_YYY”,显然曾经是时区的时间戳 被送到“TABLE_XXX”,我必须使用这个表中的这个字段供我使用。
(我相信当时间戳转换为VARCHAR时,T标记时间部分的开始)
我需要将其转换回时间戳/时区。
select to_timestamp('2016-03-24T11:31:31+0100', 'yyy-mm-dd hh24:mi:ss') from DUAL
不,我无法更改“FIELD_YYY”或“TABLE_XXX”,为什么?我不能,那就是生命...: - (
答案 0 :(得分:3)
使用to_timestamp_tz()
功能,附上" T"在格式字符串的双引号中你很高兴。
select to_timestamp_tz('2016-03-24T11:31:31+0100'
, 'yyyy-mm-dd"T"hh:mi:sstzhtzm') as res
from dual
结果:
RES
--------------------------------------
24-MAR-16 11.31.31.000000000 AM +01:00
答案 1 :(得分:0)
您可以使用to_timestamp_tz
select to_timestamp_tz(your_string, 'YYYY-MM-DD HH24:MI:SS TZH:TZM') from dual;
select to_timestamp_tz('2011-05-12 19:04:41.032645 +01:00',
'YYYY-MM-DD"T"HH24:MI:SS TZH:TZM') from dual;