有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java sql异常:不一致的数据类型:预期的时间戳编号

我已经用时间戳数据库在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) 个答案

  1. # 1 楼答案

    在SQL Server中,TIMESTAMP数据类型的含义与您认为的不同TIMESTAMP列意味着在服务器创建和更新行时由服务器本身进行更新。它们的值看起来像“0x00000000001CF9F9”,这实际上只是一个十六进制格式的数字

    您需要的是DATETIME数据类型

  2. # 2 楼答案

    我认为您应该使用PreparedStatement(这也有助于避免SQL注入),并像这样插入时间戳的值:

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