Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle从日期格式插入_Oracle_Date_Format - Fatal编程技术网

Oracle从日期格式插入

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转换为日期格式 希望对您有所帮助。您只需将字符串转换为具有适当

我有日期格式的数据

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”中的日期=美国”