我一直在尝试在CREATE命令中格式化日期和时间(以申请用户未输入任何日期/时间值的情况)。根据手册,有TO_DATE和TO_TIMESTAMP格式元素。如何修复我的SQL语句?
http://hsqldb.org/doc/guide/builtinfunctions-chapt.html#N142F5
CREATE TABLE test1(
Id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
"Date In" DATE DEFAULT TO_TIMESTAMP(CURRENT_DATE, 'DD/MM/YYYY'),
"Time In" TIME DEFAULT TO_TIMESTAMP(CURRENT_TIME,'HH:MM')
);
我尝试使用TO_CHAR但仍然返回错误。
答案 0 :(得分:2)
DATE,TIMESTAMP或TIME值没有"格式"。它们以二进制方式存储,并在显示时进行格式化。因此,您无法应用"格式"到DATE
列。此外,在一个日期值上调用to_timestamp()
是没有意义的。 to_timestamp()
用于将字符串(字符)值转换为日期(或时间戳)。
只需定义两列而不(错误地)将字符串转换应用于时间戳:
CREATE TABLE test1(
Id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
"Date In" DATE DEFAULT CURRENT_DATE,
"Time In" TIME DEFAULT CURRENT_TIME
);
鉴于这两列的名称,我认为将它存储在一个timestamp
列中会更有意义:
CREATE TABLE test1(
Id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
"Date Time In" TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);