代码之家  ›  专栏  ›  技术社区  ›  beginner_

Oracle收件人日期:ORA-01821:无法识别日期格式

  •  0
  • beginner_  · 技术社区  · 6 年前

    如何将此字符串转换为日期或时间戳?

    我试过:

    select to_date('04-Nov-2014 10:16:20 AM -0500', 'DD-MON-YYYY HH:MI:SS AM TZH') FROM dual;
    

    会产生错误:

    ORA-01821: date format not recognized
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Wernfried Domscheit    6 年前

    数据类型 DATE TIMESTAMP WITH TIME ZONE 如果你喜欢的话。您还应该考虑由当前用户NLS设置设置的日期语言。

    -5000 不匹配 TZH ,试试这个:

    select 
      TO_TIMESTAMP_TZ('04-Nov-2014 10:16:20 AM -0500', 'DD-MON-YYYY HH:MI:SS AM TZHTZM', 'NLS_DATE_LANGUAGE = American') 
    FROM dual;
    
        2
  •  0
  •   Tim Biegeleisen    6 年前

    TO_TIMESTAMP_TZ ,可以解析时区信息:

    SELECT
        TO_TIMESTAMP_TZ('04-Nov-2014 10:16:20 AM -0500', 'DD-MON-YYYY HH:MI:SS AM TZHTZM')
    FROM dual;
    

    Demo

    Oracle日期不保留任何时区信息,因此必须使用时间戳。

    推荐文章