【问题标题】:Date format in Excel file to load to SQL ServerExcel 文件中的日期格式以加载到 SQL Server
【发布时间】:2018-10-10 02:52:27
【问题描述】:
我们的业务将向我们提供.csv 文件。文件中的一列将采用日期格式。现在我们知道 Excel 中有许多日期格式。问题是我们需要检查提供的日期是否是正确的日期。它可以是任何格式,例如 ddmmyyyy、yyyymmdd、dd-mon-yyyy 等,基本上是 Excel 支持的任何格式。
我们计划首先将数据加载到暂存区,并将日期字段定义为varchar,以便它可以接受任何数据。
现在无论是使用 SSIS 还是通过 T-SQL,我都需要检查提供的日期是否实际上是日期,如果是,我需要将其加载到 YYYYMMDD 格式的不同表中。
我该如何进行上述操作?
【问题讨论】:
标签:
sql-server
excel
ssis
【解决方案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 函数。将它们组合在一起,您应该能够实现所需的目标。