Informix 数据库 - 创建带有日期时间列的表,出现默认值语法错误

muf*_*in9 4 sql informix datetime

尝试创建具有默认 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...
)
Run Code Online (Sandbox Code Playgroud)

当我尝试执行此操作时,出现此错误并且无法创建表。

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

声明列的默认值时是否需要使用特定的 DATETIME 格式?我查看了IBM 的知识中心,并相信我使用的是正确的语法。

Jon*_*ler 5

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

\n\n
CREATE TABLE myTable (\n    start_time DATETIME YEAR TO FRACTION NOT NULL DEFAULT\n               DATETIME(0001-01-01 09:00:00.000) YEAR TO FRACTION,\n    end_time   DATETIME YEAR TO FRACTION NOT NULL DEFAULT\n               DATETIME(0001-01-01 17:00:00.000) YEAR TO FRACTION,\n    daily_max  INT NOT NULL,\n    \xe2\x80\xa6some other columns\xe2\x80\xa6\n)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我使用简单FRACTION一致的方式来追求统一(和简单),这意味着与FRACTION(3). 在公元(纪元)或公元(基督教纪元)初期,大多数人都没有朝九晚五的工作。

\n\n

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

\n