【问题标题】:db2 timestamp format not loadingdb2 时间戳格式未加载
【发布时间】:2011-09-20 13:43:59
【问题描述】:

我正在尝试将带有时间戳的数据批量加载到 DB2 UDB 版本 9 中,但没有成功。

我的目标表就这样创建好了

CREATE TABLE SHORT
(
 ACCOUNT_NUMBER INTEGER 
, DATA_UPDATE_DATE TIMESTAMP DEFAULT current timestamp
, SCHEDULE_DATE TIMESTAMP DEFAULT current timestamp
...
0)

这是我批量加载的代码

load from /tmp/short.csv of del modified by COLDEL, savecount 500 messages /users/chris/DATA/short.msg INSERT INTO SHORT NONRECOVERABLE DATA BUFFER 500

没有加载任何行。我收到一个错误

SQL0180N  The syntax of the string representation of a datetime value is 
incorrect.  SQLSTATE=22007

因此,我在创建表时尝试强制使用时间戳格式:

CREATE TABLE SHORT
(
 ACCOUNT_NUMBER INTEGER 
, DATA_UPDATE_DATE TIMESTAMP DEFAULT 'YYYY-MM-DD HH24:MI:SS' 
, SCHEDULE_DATE TIMESTAMP DEFAULT 'YYYY-MM-DD HH24:MI:SS' 
...
0)

但无济于事:SQL0574N DEFAULT value or IDENTITY attribute value is not valid for column。我的数据文件源中的时间戳格式如下所示

2002/06/18 17:11:02.000

如何格式化我的时间戳列?

【问题讨论】:

    标签: sql database datetime db2


    【解决方案1】:

    使用 LOAD 实用程序的 TIMESTAMPFORMAT 文件类型修饰符来指定数据文件中的格式。

    load from /tmp/short.csv
        of del
        modified by COLDEL, TIMESTAMPFORMAT="YYYY/MM/DD HH:MM:SS.UUUUUU"
        savecount 500 
        messages /users/chris/DATA/short.msg 
        INSERT INTO SHORT 
        NONRECOVERABLE
    

    【讨论】:

      【解决方案2】:

      在我看来,它几乎就像 ISO。 如果您能够编辑数据文件并且可以安全地将斜杠更改为连字符(可能会剪掉小数部分)并且 DB2 接受 ISO,那么您就可以了。

      【讨论】:

      • 不客气。如果您了解您的编辑器,您就不需要下沉的 DBMS!
      • Vi 是我的朋友。和赛德。还有 Awk。
      • 这里也一样。现在去检查时区... :-(
      • 对不起,这是一个糟糕的答案。 “编辑您的文件”不是正确的解决方案。
      猜你喜欢
      • 2015-09-28
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      • 2019-02-24
      • 2015-01-26
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      相关资源
      最近更新 更多