【问题标题】:DB2 - increment CURRENT_DATEDB2 - 递增 CURRENT_DATE
【发布时间】:2013-02-19 05:10:51
【问题描述】:

我只是想将 expire_date_membership 设置为当前日期后 2 年的日期,但不要缝合以使语法正确。 有人可以帮忙吗?

CREATE TABLE Members (
   pid INTEGER NOT NULL, 
   registration_date_membership DATE DEFAULT CURRENT_DATE, 
   expire_date_membership DATE DEFAULT (CURRENT_DATE + 24 MONTHS), 
   membership_fees DOUBLE, 
   overdue_fees DOUBLE, 
   PRIMARY KEY(pid),
   FOREIGN KEY (pid) REFERENCES Person)

错误信息:

DB21034E 该命令被作为 SQL 语句处理,因为它是 不是有效的命令行处理器命令。在 SQL 处理期间 返回:SQL0104N 在以下发现意外的标记“DEFAULT” “ate_memebership 日期”。预期的标记可能包括:“CHECK”。 SQLSTATE=42601

【问题讨论】:

    标签: sql date db2


    【解决方案1】:

    您缺少 WITH 关键字。

    您的查询应该是:

    CREATE TABLE Members (
       pid INTEGER NOT NULL, 
       registration_date_membership DATE WITH DEFAULT CURRENT_DATE, 
       expire_date_membership DATE WITH DEFAULT (CURRENT_DATE + 24 MONTHS), 
       membership_fees DOUBLE, 
       overdue_fees DOUBLE, 
       PRIMARY KEY(pid),
       FOREIGN KEY (pid) REFERENCES Person)
    

    更多:Default values

    【讨论】:

    • DB21034E 该命令被作为 SQL 语句处理,因为它不是有效的命令行处理器命令。在 SQL 处理期间,它返回:SQL0104N 在“ip DATE WITH DEFAULT”之后发现了一个意外的标记“(”。预期的标记可能包括:“CHECK”。SQLSTATE=42601
    • 尝试使用这个:expire_date_membership DATE WITH DEFAULT CURRENT_DATE + 24 MONTHS,
    • 已经尝试过...仍在说预期的标记可能包括:“”。
    【解决方案2】:

    希望这会对您有所帮助,但它已更改为 TIMESTAMP,而不是 DATE 数据类型。

    registration_date_membership TIMESTAMP WITH DEFAULT CURRENT TIMESTAMP, expire_date_membership TIMESTAMP WITH DEFAULT TIMESTAMPADD(256,40,TIMESTAMP((CURRENT TIMESTAMP)),

    【讨论】:

      猜你喜欢
      • 2015-06-26
      • 1970-01-01
      • 1970-01-01
      • 2013-06-18
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 1970-01-01
      • 2016-12-05
      相关资源
      最近更新 更多