SSMS导入向导加载CSV日期列时出现问题,日期和时间以毫秒为单位



我有一些大的CSV文件,我正试图使用ssms导入向导将其导入到SQL Server表中。其中一列是日期列,格式为yyyy-mm-dd hh:mm:ss:xxx。我已经尝试了源字段中提供给我的每一种日期格式,但它最多只能为我提供以毫秒为.000的整个日期,而不是.txt CSV文件中的值。

我唯一能想到的是,输入日期的毫秒数在冒号(:(之后,而不是句点(.(。我可以编写一个程序,将冒号转换为句点,然后加载它,但我确实编辑了文件,并将前六行更改为句点,这似乎没有任何效果。

对于导入,我使用";平面文件源";,在";高级";,我选择";数据类型";对于列,并已使用以下每一项作为DataType。

数据库日期[DT_DBDATE]、数据库时间[DT_DBTIME]、精确数据库时间[DT_DBTIME2]、

数据库时间戳[DT_DBTIMESTAMP],精度为[DT_DBIMESTAMP2]的数据库时间戳,

DT_DBTIMESTAMPOFFSET]和偶数日期[DT_date]、十进制[DT_DIMAL]、文件时间戳[DT_FILETIME]

目标是到SQL Server Native Client 11.0的目标类型datetime2,该类型在表中定义为datetime2(7(,而不是null。

通过所有这些尝试;数据将被截断";错误,否则加载时会将毫秒设置为000,而不是CSV文件中的值。

如果有任何帮助,我将不胜感激。

谢谢,

Bob

感谢花了一些时间研究这个问题的人,但我用不同的方式解决了我的问题。我没有将字符串datetime转换为数据库datetime,而是将其作为varchar列加载到表中。我将只在SELECT语句的where子句中使用该日期时间,而从不在日期或时间比较中使用。在我的";其中条款";当我需要选择数据时。

最新更新