【发布时间】: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 数据类型列
【问题讨论】:
SELECT TO_DATE(UPDATED_DATE,'DD-MM-YYYY HH12:MI:SS.FF AM/PM')
FROM tw_edu_infra_amenities;
我收到错误消息,说无法识别日期格式。 UPDATED_DATE 是我的 varchar2 数据类型列
【问题讨论】:
只需使用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 |
【讨论】:
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 中找到有关日期格式字符串的更多信息:
【讨论】: