将平面文件导入SQL Server会将错误的日期存储在数据库中

时间:2019-06-19 16:29:04

标签: sql-server ssms

我是一名SQL学生,负责为我实习的公司将数据加载到SQL Server中。

我尝试将日期格式为1/23/04的多个平面文件加载到SSMS中,并在通过向导时正确预览日期。将它们加载到实际数据库中并执行select查询后,所有日期都将以2023-01-04格式返回。

我不确定从哪里开始解决此问题。我已将列加载为nvarchar(50),而不是datedatetimedatetime2,以查看它们是否有所不同,并且每种情况都返回相同的格式。这是平面文件,SSMS还是计算机本身的设置?

1 个答案:

答案 0 :(得分:0)

在SSIS中,将列(带有日期)作为字符串输入,并添加派生的列转换,以将列(使用substring函数)转换为正确的日期。 SQL Server喜欢将日期视为YYYY-MM-DD,因此为什么没有明确告诉它如何读取字符串,它默认会认为输入的日期是该格式。

如果使用的是SQL Server(SSMS),则应将其输入为字符串(char(8)),然后使用强制转换或转换函数将字符串更改为日期。然后,您可以发出“更改表删除列”以删除日期的字符串版本列。