【问题标题】:Date format not recognised in oracleoracle无法识别日期格式
【发布时间】:2023-02-21 20:44:32
【问题描述】:
SELECT TO_DATE(UPDATED_DATE,'DD-MM-YYYY HH12:MI:SS.FF AM/PM')
FROM tw_edu_infra_amenities;

我收到错误消息,说无法识别日期格式。 UPDATED_DATE 是我的 varchar2 数据类型列

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    只需使用AM 或PM(不能同时使用)并且FF 格式模型仅用于TO_TIMESTAMP 或TO_TIMESTAMP_TZ(不是TO_DATE,因为日期没有小数秒)。

    SELECT TO_TIMESTAMP(
             UPDATED_DATE,
             'DD-MM-YYYY HH12:MI:SS.FF AM'
           )
    FROM   tw_edu_infra_amenities;
    

    其中,对于样本数据:

    CREATE TABLE tw_edu_infra_amenities (updated_date) AS
    SELECT '01-02-2003 12:34:56.789 AM' FROM DUAL;
    

    输出:

    TO_TIMESTAMP(UPDATED_DATE,'DD-MM-YYYYHH12:MI:SS.FFAM')
    2003-02-01 00:34:56.789000000

    fiddle

    【讨论】:

      【解决方案2】:

      UPDATED_DATE 列中日期字符串的格式与您在 TO_DATE() 函数中使用的格式字符串不匹配

      SELECT TO_DATE(UPDATED_DATE,'DD/MM/YYYY HH:MI:SS AM') FROM tw_edu_infra_amenities;
      

      确保将“DD/MM/YYYY HH:MI:SS AM”替换为列中日期字符串的实际格式。您可以在 Oracle documentation 中找到有关日期格式字符串的更多信息:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-03
        • 2016-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多