无法获取时间戳的值

时间:2014-06-27 16:10:55

标签: java sql sql-server jdbc

我在从SQL Server获取列时遇到问题。

DB有一个timestamp类型的列,我试图在Java中设置该值,但是我收到以下消息错误消息:

com.microsoft.sqlserver.jdbc.SQLServerException:the conversion type timestamp to TIMESTAMP is not compatible.

我的Java代码是:

dtoOperacion.setExtractionDate(rs.getTimestamp(7));

属性extractionDate的类型为java.sql.Timestamp

我可以使用JDBC Sql Server指定的类型吗?

2 个答案:

答案 0 :(得分:5)

我认为您首先在表中使用了错误的数据类型。您应该使用Datetime而不是TimeStamp数据类型。根据SQL服务器文档,时间戳是 -

“是一种在数据库中公开自动生成的唯一二进制数的数据类型。时间戳通常用作对表行进行版本标记的机制。存储大小为8个字节。时间戳数据类型只是一个递增的数字并且不保留日期或时间。要记录日期或时间,请使用日期时间数据类型。“

答案 1 :(得分:0)

对于SQL Server 2012,至少the MSDN page on JDBC data types建议你应该使用JDBC的BINARY类型。