我是一名SQL学生,负责为我实习的公司将数据加载到SQL Server中。
我尝试将日期格式为1/23/04
的多个平面文件加载到SSMS中,并在通过向导时正确预览日期。将它们加载到实际数据库中并执行select
查询后,所有日期都将以2023-01-04
格式返回。
我不确定从哪里开始解决此问题。我已将列加载为nvarchar(50)
,而不是date
,datetime
和datetime2
,以查看它们是否有所不同,并且每种情况都返回相同的格式。这是平面文件,SSMS还是计算机本身的设置?
答案 0 :(得分:0)
在SSIS中,将列(带有日期)作为字符串输入,并添加派生的列转换,以将列(使用substring函数)转换为正确的日期。 SQL Server喜欢将日期视为YYYY-MM-DD,因此为什么没有明确告诉它如何读取字符串,它默认会认为输入的日期是该格式。
如果使用的是SQL Server(SSMS),则应将其输入为字符串(char(8)),然后使用强制转换或转换函数将字符串更改为日期。然后,您可以发出“更改表删除列”以删除日期的字符串版本列。