HSQLDB创建用于sqlserver的单元测试的表

问题描述

我正在使用hsqldb为sqlserver单元测试创​​建表。这是我的语法:

SET DATABASE sql Syntax MSS TRUE;

DROP TABLE MY_STUDIES IF EXISTS;
CREATE TABLE MY_STUDIES
(
STUDY_ID INT,IB_ID INT NOT NULL,STUDY_DATE DATE,CREATION_DATE DATE,STUDY_UID VARCHAR(200),PRIMARY KEY (STUDY_ID)
);

STUDY_DATECREATION_DATE之外,其他所有方法都可以正常工作。 DATE是这里的一种好格式吗?此处的sqlserver是否还有其他DATE类型?

解决方法

SQL Server documentation说:

将时间,日期,datetime2和datetimeoffset数据类型用于新 工作。这些类型符合SQL标准。它们更便携。 time,datetime2和datetimeoffset提供更高的秒精度。 datetimeoffset为全局部署提供时区支持 应用程序。

SQL标准类型为TIME,DATE,TIMESTAMP和TIMESTAMP WITH TIME ZONE。 Microsoft使用DATETIME2和DATETIMEOFFSET作为TIMESTAMP(具有时区)的别名。

您在表定义中使用DATE似乎很好。根据SQL标准,DATE表示为YYYY-MM-DD字符串。