【发布时间】:2014-11-19 08:03:12
【问题描述】:
我有日期格式的数据
2010 年 11 月 2 日 2013 年 3 月 15 日——以此类推。
我需要提取这些数据并插入到 DATE 类型的字段中。
我怎样才能做到这一点?
【问题讨论】:
我有日期格式的数据
2010 年 11 月 2 日 2013 年 3 月 15 日——以此类推。
我需要提取这些数据并插入到 DATE 类型的字段中。
我怎样才能做到这一点?
【问题讨论】:
select to_char(sysdate,'ddth Month YYYY','NLS_DATE_language=American') from dual
输出: 2014 年 11 月 19 日
select to_date('15th Mar 2013','dd"th" Mon YYYY','NLS_DATE_language=American') from dual
用于将 varchar 转换为日期格式。
希望能帮到你。
【讨论】:
您只需要将字符串转换为具有适当格式掩码的日期:
insert into your_table values (
to_date('2nd November 2010', 'ddth Month YYYY')
)
文档包含格式模型的完整列表。 Find out more.
但是,您遇到了问题,因为您的输入具有不同的格式。我们不能使用相同的掩码来匹配 NOVEMBER 和 MAR;第二个日期需要'ddth Mar YYYY' 的掩码。
所以你需要编写一个函数来捕获ORA-01861: literal does not match format string 并应用不同的掩码;根据输入数据的质量,您可能需要其中几个。这种情况在不使用强数据类型的应用程序中很常见,因此在与更严格的系统交互时需要数据清理。
【讨论】: