对 hsqldb 运行休眠时无法解析的日期

Posted

技术标签:

【中文标题】对 hsqldb 运行休眠时无法解析的日期【英文标题】:Unparseable date when running hibernate against hsqldb 【发布时间】:2014-08-19 10:39:04 【问题描述】:

我已经从 oracle db 中导出了 sql,其中有这一行:

to_timestamp('23-APR-09 06.11.52.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')

我有一个名为Test 的类,它有一个名为date 的实例TimeStamp。喜欢:

@Entity class Test

   TimeStamp date

当我尝试运行这些代码时:

session.createSQLQuery("insert into Test (date) values(to_timestamp('23-APR-09 06.11.52.000000000 PM','DD-MON-RR HH.MI.SS.FF AM'))").executeUpdate()

我得到一个例外:

org.hibernate.exception.DataException: could not execute native bulk manipulation query
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:102)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
    at org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUpdate(NativeSQLQueryPlan.java:219)
    at org.hibernate.impl.SessionImpl.executeNativeUpdate(SessionImpl.java:1300)
    at org.hibernate.impl.SQLQueryImpl.executeUpdate(SQLQueryImpl.java:365)
Caused by: java.sql.SQLException: data exception: invalid datetime format: java.text.ParseException: Unparseable date: "23-APR-09 06.11.52.000000000 PM"
    at org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUpdate(NativeSQLQueryPlan.java:210)
    ... 6 more
Caused by: org.hsqldb.HsqlException: data exception: invalid datetime format: java.text.ParseException: Unparseable date: "23-APR-09 06.11.52.000000000 PM"
    ... 7 more

我哪里出错了?

【问题讨论】:

【参考方案1】:

尝试以下方法:

insert into Test (date) values(to_timestamp('23-APR-09 06.11.52.000000000 PM','DD-MON-YY HH.MI.SS.FF AM'))

根据位于http://www.hsqldb.org/doc/2.0/guide/builtinfunctions-chapt.html#bfc_datetime_format 的 HSQL 文档,当使用 R 表示法表示年份时,它必须是四个 R (RRRR)。 . .但 。 . .您的定义是两位数的年份,因此请改用 YY

【讨论】:

以上是关于对 hsqldb 运行休眠时无法解析的日期的主要内容,如果未能解决你的问题,请参考以下文章