Oracle从日期格式插入
我有日期格式的数据 2010年11月2日 2013年3月15日——以此类推 我需要提取这些数据并插入日期类型的字段 我如何才能做到这一点?从双精度菜单中选择charsysdate、'ddth Month YYYY'、'NLS\u DATE\u language=American' 输出: 2014年11月19日 从双重菜单中选择日期为“2013年3月15日”、“第四个周一至YYYY”、“NLS\U日期语言=美语” 用于将varchar转换为日期格式Oracle从日期格式插入,oracle,date,format,Oracle,Date,Format,我有日期格式的数据 2010年11月2日 2013年3月15日——以此类推 我需要提取这些数据并插入日期类型的字段 我如何才能做到这一点?从双精度菜单中选择charsysdate、'ddth Month YYYY'、'NLS\u DATE\u language=American' 输出: 2014年11月19日 从双重菜单中选择日期为“2013年3月15日”、“第四个周一至YYYY”、“NLS\U日期语言=美语” 用于将varchar转换为日期格式 希望对您有所帮助。您只需将字符串转换为具有适当
希望对您有所帮助。您只需将字符串转换为具有适当格式掩码的日期:
insert into your_table values (
to_date('2nd November 2010', 'ddth Month YYYY')
)
该文档包含格式模型的完整列表
但是,您有一个问题,因为您的输入具有不同的格式。我们不能用同一个面具来匹配十一月和三月;第二个日期需要“ddth-Mar-YYYY”掩码
因此,您需要编写一个函数来捕获ORA-01861:literal与格式字符串不匹配,并应用不同的掩码;根据输入数据的质量,您可能需要具有其中几个。这种情况在不使用强数据类型的应用程序中很常见,因此当它们与更严格的系统交互时,需要进行数据清理 我将用convert替换cast,因为cast也存在于Oracle中,其行为方式与“日期”不完全相同。它给出了一个错误ORA-01861:选择“日期”时,文本与格式字符串不匹配,“日期”为“2013年3月15日”,“第四个周一YYYY”,“第四个周一YYYY”,“第四个周一YYYY”,“第三个周一YYYY”中的“日期语言=美国”,请尝试“日期”为“2013年3月15日”,“第四个周一YYYYYYYY”,“第二个周一YY”中的日期=美国”