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