hsqldb中时间戳大小的奇怪行为

时间:2013-06-19 12:36:29

标签: hsqldb

我有示例ddl脚本:

CREATE TABLE PERSON
(
  ID BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL
, FIRST_NAME VARCHAR(100) NOT NULL 
, LAST_NAME VARCHAR(100) NOT NULL 
, DATE_OF_BIRTH DATE
, GENDER VARCHAR(1) NOT NULL
, SSN VARCHAR(100)
, LAST_LOGIN TIMESTAMP
, VERSION INT DEFAULT 0 NOT NULL
);

当我在db visualiser中打开这个数据库时,我看到时间戳的大小为26。我真的不知道为什么,因为我读默认值为6.所以我想改变它,例如:

, LAST_LOGIN TIMESTAMP(1)

现在是21号。这真的很奇怪。可能是最后一个整数平均大小,但第一个数字“2”的含义是什么?

1 个答案:

答案 0 :(得分:0)

你所谓的“大小”是时间戳的亚秒级精度,默认为6。您的TIMESTAMP(1)示例定义了亚秒级精度为1的时间戳。

您在DB Visualiser中看到的数字是TIMESTAMP列的显示大小。

TIMESTAMP(1),例如'2013-06-19 01:01:01.1',始终使用21个字符进行重新呈现。定义为TIMESTAMP或TIMESTAMP(6)的时间戳在末尾显示五位数。