1

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

在此处输入图像描述

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

ExecutionDateTime   datetime2,

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

ExecutionDateTime 列设置为 Datetime2。

当前行为:

在此处输入图像描述

预期的 :

在此处输入图像描述 这可能吗?

我正在使用 SQL Server 2012。

任何指针?

4

1 回答 1

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的示例

于 2018-04-24T17:48:37.660 回答