Excel文件中的日期格式以加载到SQL Server

时间:2018-10-10 02:52:27

标签: sql-server excel ssis

我们的业务将向我们提供.csv文件。文件中的一列将采用日期格式。现在我们知道Excel中有许多日期格式。问题是我们需要检查提供的日期是否正确。它可以是ddmmyyyy,yyyymmdd,dd-mon-yyyy等任何格式,基本上是Excel支持的任何格式。

我们计划首先将数据加载到暂存区域中,并且将日期字段定义为varchar,以便它可以接受任何数据。

现在无论是使用SSIS还是通过T-SQL,我都需要检查提供的日期是否实际上是一个日期,是否需要将其以YYYYMMDD格式加载到其他表中。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

考虑到您已经将excel数据作为varchar加载到SQL Server表中(可以使用SSIS轻松完成此操作),类似的事情将起作用:

SELECT 
    case when ISDATE(YOUR_DATE) = 1 then CONVERT(int,YOUR_DATE,112) else null end as MyDate
FROM
    YOUR_TABLE

我目前无法访问SQL Server实例,并且无法测试上面的代码,因此您可能需要适应您的需求,但这是一般性的想法。 您还可以对SQL Server中的ISDATE和CONVERT函数做进一步的研究。您应该能够实现将它们组合在一起的功能。