【问题标题】: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 函数。将它们组合在一起,您应该能够实现所需的目标。

    【讨论】:

    • 我会尝试这种方法并恢复。
    猜你喜欢
    • 2016-11-23
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    • 2014-12-07
    相关资源
    最近更新 更多