我已经在|中创建了一个SSIS 2012包。该包基本上连接到预定义位置中的文本文件,并将文本文件中的数据加载到SQL数据库表中。我有一个DOB字段,它是目标SQL表中的DATE TYPE,它返回错误:转换失败,日期超出范围。
我没有任何运气转换DOB列使用CAST或CONVERT函数:
CONVERT(date, DOB, 103)
我做错了什么?
当您想将varchar值转换为日期时间时,应该使用CAST()或CONVERT()函数https://msdn.microsoft.com/ru-ru/library/ms187928.aspx
我的DOB列的输入文件中有一些坏数据。例如:DOB: 100-01-01, 29999-05-24;我试图使用convert函数转换这些日期,它返回错误。
所以,我只是选择记录只有有效的DOB日期使用如下查询,之后我可以转换DOB没有任何错误,在这种情况下:
SELECT * FROM MyTableTest WHERE ISDATE(dob) <> 1