HSQLDB:“;无效的日期时间格式";适用于年月日,但不适用于年月日
我的表格创建如下所示:HSQLDB:“;无效的日期时间格式";适用于年月日,但不适用于年月日,sql,jdbc,hsqldb,Sql,Jdbc,Hsqldb,我的表格创建如下所示: CREATE TABLE inventory ( id INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 100, INCREMENT BY 1) PRIMARY KEY, name VARCHAR(30), department VARCHAR(50), inventory_type VARCHAR(255), expiry_date date NOT NULL ); 以下是表格中的inser
CREATE TABLE inventory (
id INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 100, INCREMENT BY 1) PRIMARY KEY,
name VARCHAR(30),
department VARCHAR(50),
inventory_type VARCHAR(255),
expiry_date date NOT NULL
);
以下是表格中的insert语句:
INSERT INTO inventory (name, department,inventory_type,expiry_date) VALUES ('om', 'Education','Raw', '01/01/2016');
INSERT INTO inventory (name, department,inventory_type,expiry_date) VALUES ('hari', 'HR','Solid' ,'02/02/2016');
INSERT INTO inventory (name, department,inventory_type,expiry_date) VALUES ('hariom', 'Finance','Other', '03/03/2016');
不幸的是,我
原因:java.sql.SQLDataException:数据异常:无效的日期时间
格式为org.hsqldb.jdbc.jdbcuti.sqlException(未知源)
~[hsqldb-2.3.2.jar:2.3.2]at
org.hsqldb.jdbc.jdbcuti.sqlException(未知源)
~[hsqldb-2.3.2.jar:2.3.2]at
org.hsqldb.jdbc.JDBCStatement.fetchResult(未知源)
~[hsqldb-2.3.2.jar:2.3.2]at
org.hsqldb.jdbc.JDBCStatement.execute(未知源)
~[hsqldb-2.3.2.jar:2.3.2]at
org.springframework.jdbc.datasource.init.ScriptUtils.executeSqlScript(ScriptUtils.java:457)
~[spring-jdbc-4.1.6.RELEASE.jar:4.1.6.RELEASE]。。。60个公共框架
省略
有人能告诉我怎么了吗
当我更改如下语句时,它工作正常:
INSERT INTO inventory (name, department, inventory_type, expiry_date) VALUES ('om', 'Education','Raw', '2016-01-01');
INSERT INTO inventory (name, department, inventory_type, expiry_date) VALUES ('hari', 'HR','Solid' ,'2016-02-02');
INSERT INTO inventory (name, department,inventory_type,expiry_date) VALUES ('hariom', 'Finance','Other', '2016-03-03');
有人能告诉我怎么了吗
答案很简单,如果日期采用'yyyy-mm-dd'
格式,HSQLDB将只接受日期的字符串文本。它在某种程度上是有帮助的,因为它允许我们从“适当的”HSQLDB日期文字值中省略DATE
关键字
日期“2016-01-02”
让我们简单地提供
“2016-01-02”
但它不会接受
'01/02/2016'
(无论如何,这是不明确的)或。您的问题是什么?使用ISO 8601标准日期格式,一切正常。'01/01/2016'
'2016-01-01'
是字符串,而不是日期
值<代码>'2016-01-01'由于邪恶的隐式数据类型转换,恰好可以转换为日期。请参阅手册,了解如何正确指定数据值:2016年1月1日并不含糊,因为一天和一个月碰巧以任何方式计算。01/02/2016... 这不是含糊不清的;)@乔尔科霍恩——“愚蠢的”我感谢您的更正。如果您想将非标准格式转换为日期('01/01/2016','DD/MM/YYYY'))