Sql server SSIS日期、逗号和派生列问题

Sql server SSIS日期、逗号和派生列问题,sql-server,csv,ssis,Sql Server,Csv,Ssis,我是SSIS的新手,我正在构建一个包,其中有一个来自CSV的平面文件源,并将其导入到我们的数据库中。在CSV中,我遇到问题的列名为Date(日期格式为dd-mm-yy,例如:2016年2月8日),我有SSIS建议类型,它为该列提供了一种类型为string。在数据库中,日期的对应列具有数据类型datetime,这相当于它在SSI中具有类型数据库时间戳。我试着给他们相同的数据类型,试着通过数据转换来运行它,我把它们弄得一团糟,但似乎没有任何效果。也许我错过了什么?我得到的错误是: The data

我是SSIS的新手,我正在构建一个包,其中有一个来自CSV的平面文件源,并将其导入到我们的数据库中。在CSV中,我遇到问题的列名为Date(日期格式为dd-mm-yy,例如:2016年2月8日),我有SSIS建议类型,它为该列提供了一种类型为
string
。在数据库中,日期的对应列具有数据类型
datetime
,这相当于它在SSI中具有类型
数据库时间戳
。我试着给他们相同的数据类型,试着通过数据转换来运行它,我把它们弄得一团糟,但似乎没有任何效果。也许我错过了什么?我得到的错误是:

The data conversion for column ""Date"" returned status value 2 and status text 
The value could not be converted because of a potential loss of data.
另一个问题是,表数据中有一些逗号,但它们出现在整个随机列中。是否有一种简洁的方法来搜索所有行以删除逗号?对我的CSV中的每一列使用派生列确实效率低下,但我似乎找不到更好的答案。

SSIS对允许字符串转换为其他数据格式的格式非常挑剔。查看一下,您将在标题下看到字符串和日期/时间数据类型之间的转换将字符串转换为日期/时间类型支持以下格式:

+----------------------+---------------------------------------------+
|      Data type       |                String format                |
+----------------------+---------------------------------------------+
| DT_DBDATE            | yyyy-mm-dd                                  |
| DT_FILETIME          | yyyy-mm-dd hh:mm:ss:fff                     |
| DT_DBTIME            | hh:mm:ss                                    |
| DT_DBTIME2           | hh:mm:ss[.fffffff]                          |
| DT_DBTIMESTAMP       | yyyy-mm-dd hh:mm:ss[.fff]                   |
| DT_DBTIMESTAMP2      | yyyy-mm-dd hh:mm:ss[.fffffff]               |
| DT_DBTIMESTAMPOFFSET | yyyy-mm-dd hh:mm:ss[.fffffff] [{+|-} hh:mm] |
+----------------------+---------------------------------------------+
这是您唯一的格式选择。如果您的值与该格式不匹配,则必须使其与该格式匹配

最好将字段作为DT_WSTR导入,并使用带有表达式的派生列进行翻译

另一个选项是将它们作为字符串导入到staging表中,然后从那里转换它们