【问题标题】:SQL Server Import and Export Wizard Datetime issueSQL Server 导入和导出向导日期时间问题
【发布时间】:2018-04-24 17:43:11
【问题描述】:

我需要导入一个带有日期时间列的平面 csv 文件 - 'ExecutionDateTime'。此列可以有空值,例如:

我正在将其导入现有表,其中 ExecutionDateTime 列设置为 Datetime2。

ExecutionDateTime   datetime2,

当我使用 SQL Server 导入导出向导导入时,对于空行,我得到的值为“0001-01-01 00:00:00.0000000”。我希望它读取 NULL。

ExecutionDateTime 列设置为 Datetime2。

当前行为:

预期:

这可能吗?

我使用的是 SQL Server 2012。

有什么建议吗?

【问题讨论】:

    标签: sql-server ssms ssms-2012 sql-import-wizard


    【解决方案1】:

    我认为使用向导是不可能的。但是,您可以在导入时使用 case 语句...

    insert into mytable
    select
       Id
       ,case when ExecutionDateTime = '' then null else ExecutionDateTime end
    from --openrowset, etc...
    

    或者,如果数据集很小,您总是可以在事后修复它 0r 您正在使用临时表...

    update mytable 
    set ExecutionDateTime = null
    where ExecutionDateTime = ''
    

    这是一个使用BULKINSERT的示例

    【讨论】:

    • 谢谢。我做了更新声明来修复它。我想知道向导中是否有任何设置可以解决这个问题。
    猜你喜欢
    • 2012-02-29
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    • 2017-05-05
    • 2018-09-26
    • 2010-12-27
    • 1970-01-01
    • 2012-04-29
    相关资源
    最近更新 更多