【问题标题】:Export DB2 table filter with timestamp column SQL error "-180"导出带有时间戳列 SQL 错误“-180”的 DB2 表过滤器
【发布时间】:2017-07-24 09:38:31
【问题描述】:

我正在尝试从在 Timestamp 列上添加过滤器的表中导出数据,但它返回 SQL 错误“-180”SQLSTATE=22007。

EXPORT TO "e:\temp\SPO_DPDN_DET.csv" OF DEL MODIFIED BY coldel, codepage=1208 MESSAGES "e:\temp\SPO_DPDN_DET.log"
select * from mcare.SPO_DPDN_DET001 where SP_CODE in('919097','919025') AND APPR_TIME BETWEEN '11.07.2017' and '24.07.2017';

APPR_TIMETimestamp 列。我收到此错误:

SQL3104N 导出实用程序开始将数据导出到文件“e:\temp\SPO_DPDN_DET.csv”。

SQL3015N 处理期间发生 SQL 错误“-180”。

SQL0180N 日期时间值的字符串表示的语法不正确。 SQLSTATE=22007

SQL3105N 导出实用程序已完成导出“0”行。

【问题讨论】:

  • 错误信息的哪一部分似乎不清楚?

标签: timestamp db2 export


【解决方案1】:

如果 APPR_TIME 的数据类型是“timestamp”,则使用有效的时间戳文字,否则如果它是数据类型“date”,则使用有效的日期文字。

更易于使用 ISO 格式文字,例如时间戳文字为“2017-07-11-00.00.00.000000”,或者日期为“2017-07-11”(对于 7 月 11 日,即 yyyy-mm- dd 格式)。

【讨论】:

    【解决方案2】:

    您的 between 不适用于时间戳,就像 mao 向您解释的那样,您也可以像这样转换为日期:

    select * from mcare.SPO_DPDN_DET001 
    where SP_CODE in ('919097','919025') 
    AND date(APPR_TIME) BETWEEN '2017-07-11' and '2017-07-24';
    

    【讨论】:

      猜你喜欢
      • 2018-09-29
      • 2015-07-05
      • 2021-03-02
      • 2021-12-28
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2015-04-03
      • 2019-01-16
      相关资源
      最近更新 更多