GMT + 5.30字符串在Oracle中转换为Date

时间:2014-04-18 08:34:40

标签: oracle oracle11g

如下LINK所示, 我尝试将我的字符串'Tue May 24 20:11:20 GMT+05:30 2011'转换为oracle中的日期

select TO_TIMESTAMP_TZ('Tue May 24 20:11:20 GMT+05:30 2011', 'DY MON DD HH24:MI:SS  TZDTZH:TZM YYYY') from dual;

但它引发了错误

ORA-01857: not a valid time zone 
01857. 00000 - "not a valid time zone" 

请指导我如何在日期转换中使用GMT区域名称进行转换。

1 个答案:

答案 0 :(得分:0)

我不认为GMT在这里有任何意义。因为,+ 5:30总是意味着它相对于GMT,你可以从你的字符串中删除GMT然后转换。

SELECT TO_TIMESTAMP_TZ (
          REPLACE ('Tue May 24 20:11:20 GMT+05:30 2011', 'GMT'),
          'DY MON DD HH24:MI:SS TZH:TZM YYYY')
  FROM DUAL;

或者,

您也可以将GMT放在双引号中。

SELECT TO_TIMESTAMP_TZ (
          'Tue May 24 20:11:20 GMT+05:30 2011',
          'DY MON DD HH24:MI:SS "GMT"TZH:TZM YYYY')
  FROM DUAL;