Informix数据库 - 使用datetime列创建表,获取DEFAULT值语法错误

时间:2015-12-18 16:54:22

标签: sql datetime informix

尝试使用默认的DATETIME创建表。我的代码看起来像这样

CREATE TABLE myTable (
    start_time DATETIME YEAR TO FRACTION(3) NOT NULL DEFAULT '0001-01-01 09:00:00.000'
    end_time DATETIME YEAR TO FRACTION NOT NULL DEFAULT '0001-01-01 17:00:00.000
    daily_max INT NOT NULL
    ...some other columns...
)

当我尝试执行此操作时,我收到此错误并且无法创建表..

  

[错误代码:-591,SQL状态:IX000]列/变量(start_time)的默认值无效。

在声明列的默认值时,是否需要使用特定的DATETIME格式?我已经查看了IBM's Knowledge Center,并相信我使用了正确的语法。

1 个答案:

答案 0 :(得分:2)

使用冗长的DATETIME文字格式指定默认值:

CREATE TABLE myTable (
    start_time DATETIME YEAR TO FRACTION NOT NULL DEFAULT
               DATETIME(0001-01-01 09:00:00.000) YEAR TO FRACTION,
    end_time   DATETIME YEAR TO FRACTION NOT NULL DEFAULT
               DATETIME(0001-01-01 17:00:00.000) YEAR TO FRACTION,
    daily_max  INT NOT NULL,
    …some other columns…
)

我始终使用普通FRACTION来统一(和简单),这意味着与FRACTION(3)相同。在AD(Anno Domini)或CE(Christian Era)开始时,大多数人都没有9-5个工作岗位。

有关文字格式的详细信息,请参阅DATETIME Literal

相关问题