【问题标题】:Handling datetime with bcp and format file使用 bcp 和格式化文件处理日期时间
【发布时间】:2009-07-06 22:14:45
【问题描述】:

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

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

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

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

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

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

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

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

【问题讨论】:

    标签: sql-server datetime bcp


    【解决方案1】:

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

    这对于非常大的数据文件可能效果不佳,但我不确定您还能如何完成此操作。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-14
        • 1970-01-01
        • 2014-08-02
        • 2018-04-25
        • 2016-01-05
        相关资源
        最近更新 更多