Oracle varchar2与时区的时间戳

时间:2013-03-26 16:00:33

标签: oracle timezone timestamp varchar2

我正在尝试将包含带时区的时间戳的VARCHAR2变量转换为DATE变量。我可以在没有时区的情况下转换时间戳,但是当我为时区添加逻辑时,我得到“ORA-01821:日期格式无法识别”。请参阅以下代码:

    DECLARE
      v_string VARCHAR2(400) := '2011-05-12 19:04:41.032645 +00:00';
      v_date   DATE;
    BEGIN

      SELECT to_timestamp(v_string,'YYYY-MM-DD HH24:MI:SSxFF TZH:TZM')
        INTO v_date
        FROM dual;

    END;

1 个答案:

答案 0 :(得分:2)

使用TO_TIMESTAMP_TZ

SQL> DECLARE
  2     v_string VARCHAR2(400) := '2011-05-12 19:04:41.032645 +00:00';
  3     v_date   DATE;
  4  BEGIN
  5     v_date := to_timestamp_tz(v_string, 'YYYY-MM-DD HH24:MI:SS.FF TZH:TZM');
  6  END;
  7  /

PL/SQL procedure successfully completed