使用bcp和格式文件处理日期时间

时间:2009-07-06 22:14:46

标签: sql-server datetime bcp

我正在使用bcp将平面文件导入SQL Server 2005数据库。

我遇到了日期时间字段的问题。

我的格式文件字段指定为:

<COLUMN SOURCE="15" NAME="DATEOFSERVICE" xsi:type="SQLDATETIME"/>

我的数据文件的日期格式为: 19820101

但是,有些(很多)填充了00000000

由于类型不匹配,00000000日期无法正确导入。

有没有办法指定我的格式文件来处理清零日期?或者告诉bcp在遇到00000000时输入默认值的方法?

2 个答案:

答案 0 :(得分:2)

我建议你创建一个临时表,其中date列被指定为varchar数据类型。然后,将您的数据BCP到临时表。将数据加载到临时表后,可以清除日期(例如,将NULL替换为00000000)。最后,验证数据后,将其复制到真实表格中。

对于极大的数据文件,这可能不太适用,但我不确定你还能做到这一点。

答案 1 :(得分:0)

我会使用OPENROWSET和case语句在导入数据时进行翻译。