我在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
答案 0 :(得分:2)
我认为你应该使用PreparedStatement(它也有助于避免SQL注入),并插入timestamp的值,如下所示:
preparedStatement.setTimestamp(theNumberOfTimestampOccurenceInYourQery, new java.sql.Timestamp(new Date().getTime()));
答案 1 :(得分:0)
在SQL Server中,TIMESTAMP
数据类型并不代表您认为的含义。 TIMESTAMP
列旨在由服务器本身在创建和更新行时进行更新。它们的值看起来像" 0x00000000001CF9F9
",它实际上只是十六进制格式的数字。
您需要的是DATETIME
数据类型。