hsqldb 中时间戳大小的奇怪行为
Posted
技术标签:
【中文标题】hsqldb 中时间戳大小的奇怪行为【英文标题】:Weird behavior of timestamp size in hsqldb 【发布时间】:2013-06-19 12:36:28 【问题描述】:我有示例 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 中打开这个数据库时,我看到 timestamp 的大小为 26 。我真的不知道为什么,因为我读到的默认值为 6。所以我想更改它,例如:
, LAST_LOGIN TIMESTAMP(1)
现在是 21 号。这真的很奇怪。可能是最后一个整数的平均大小,但第一个数字“2”是什么意思?
【问题讨论】:
【参考方案1】:你所说的“大小”是时间戳的亚秒级精度,默认为 6。您的 TIMESTAMP(1) 示例定义了一个亚秒精度为 1 的时间戳。
您在 DB Visualiser 中看到的数字是 TIMESTAMP 列的显示大小。
TIMESTAMP(1),例如“2013-06-19 01:01:01.1”,总是用 21 个字符表示。定义为 TIMESTAMP 或 TIMESTAMP(6) 的时间戳显示在末尾多了五位数字。
【讨论】:
以上是关于hsqldb 中时间戳大小的奇怪行为的主要内容,如果未能解决你的问题,请参考以下文章