问题描述
我正在使用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_DATE
和CREATION_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字符串。