我在从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指定的类型吗?
答案 0 :(得分:5)
我认为您首先在表中使用了错误的数据类型。您应该使用Datetime而不是TimeStamp数据类型。根据SQL服务器文档,时间戳是 -
“是一种在数据库中公开自动生成的唯一二进制数的数据类型。时间戳通常用作对表行进行版本标记的机制。存储大小为8个字节。时间戳数据类型只是一个递增的数字并且不保留日期或时间。要记录日期或时间,请使用日期时间数据类型。“
答案 1 :(得分:0)
对于SQL Server 2012,至少the MSDN page on JDBC data types建议你应该使用JDBC的BINARY类型。