sql异常:不一致的数据类型:预期TIMESTAMP得到NUMBER

时间:2014-07-03 08:23:43

标签: java sql oracle

我在sql数据库中创建了一个带有时间戳数据库的列。 从java我试图运行下面给出的插入查询

st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
st.executeUpdate("insert into profmessage values('" + uid + "','" + from + "','" + to + "','" + msg + "','" + dt + "',1,0,'" + new java.sql.Timestamp(new Date().getTime()) + "')");
st.close();

显示

sqlexception  inconsistent datatypes: expected TIMESTAMP got NUMBER

2 个答案:

答案 0 :(得分:2)

我认为你应该使用PreparedStatement(它也有助于避免SQL注入),并插入timestamp的值,如下所示:

preparedStatement.setTimestamp(theNumberOfTimestampOccurenceInYourQery, new java.sql.Timestamp(new Date().getTime()));

答案 1 :(得分:0)

在SQL Server中,TIMESTAMP数据类型并不代表您认为的含义。 TIMESTAMP列旨在由服务器本身在创建和更新行时进行更新。它们的值看起来像" 0x00000000001CF9F9",它实际上只是十六进制格式的数字。

您需要的是DATETIME数据类型。

相关问题