0

タイムゾーン付きのタイムスタンプを含む 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;
4

1 に答える 1

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
于 2013-03-26T16:02:45.287 に答える