将 java.sql.Timestamp 类型存储到 HSQL 数据库中

Posted

技术标签:

【中文标题】将 java.sql.Timestamp 类型存储到 HSQL 数据库中【英文标题】:Storing java.sql.Timestamp type into HSQL database 【发布时间】:2015-10-15 08:31:50 【问题描述】:

我们的应用程序确实有多个数据库。

java.sql.Timestamp 类型的日期存储在 SQL SERVER 的 DATETIME 数据类型中。

但是

为了在 HSQL DB 中存储相同的类型,我使用的是 TIMESTAMP,它无法转换它。

我将无法更改 java 代码,因为它在 SQL Server 和 Oracle 中都可以使用,但我只需要在 hsql 查询中进行转换。

当前使用带有日期时间字段的 SQL Server 的工作查询是:

insert into SYSTEM_DOCUMENTS values(?)

Java 代码:

timeStamp=new java.sql.Timestamp(new java.util.Date().getTime());
String q="insert into SYSTEM_DOCUMENTS values(?)";
pstm = con.prepareStatement(q);
pstm.setTimestamp(1, timeStamp);
pstm.executeQuery();

【问题讨论】:

向我们展示您的 Java 代码 @a_horse_with_no_name 添加了我的 java 代码。 executeQuery() 应该用于 DML 语句。请改用executeUpdate()(JavaDocs 中有明确记录) 【参考方案1】:

如果您使用的是Hibernate,添加@Temporal 注释可以很简单

 @Temporal(TemporalType.DATE)
 private Date date;

TemporalTIMESTAMPDATETIME 枚举

【讨论】:

不使用hibernate..而且我不想更改java代码,而是想在HSQLDB查询中实现它。

以上是关于将 java.sql.Timestamp 类型存储到 HSQL 数据库中的主要内容,如果未能解决你的问题,请参考以下文章

java.sql.Timestamp 和 timedelta 中不支持的操作数类型“+”的 NIFI Executescript UTC 错误

java.sql.date , java.sql.timestamp 谓词 -> Oracle 分区数据类型

flink JDBC 类型转换 java.time.LocalDateTime cannot be cast to java.sql.Timestamp

日期时间JPA映射

sqlserver数据库中为datetime类型,通过myeclipse逆向工程生成实体类中属性为啥是java.sql.Timestamp

java 怎么得到timestamp的类型的当前时间