1

次のコードがあります

クエリは

insert into discussions(title,description,usrid,date,uuid,rty,yu,visit) values(?,?,?,?,?,?,?,?)

Javaコードは

java.util.Date utilDate=new java.util.Date();
java.sql.Date date=new java.sql.Date(utilDate.getTime());

ps.setString(1,t.getTitle()); //ps is prepared statement object,
ps.setString(2,t.getDescription());
ps.setString(3,t.getUsrID());
ps.setDate(4,date);
ps.setString(5,getUniqueID(usrType));
ps.setLong(6,Long.valueOf(t.getRty())); //t.getRty() is String and parsed to set a Bigint in database
ps.setLong(7,Long.valueOf(t.getyu())); //t.getyu() is String and parsed to set a Bigint in database
ps.setLong(8,Long.valueOf(t.getVisit())); //t.geVisit() is String and parsed to set a Bigint in database

すべての「ps」ステートメントの上に表示されるように、現在の日付を取得するためのコードを追加したとき。コードはcom.microsoft.sqlserver.jdbc.SQLServerException として SQLException を与えています: インデックス 6 は範囲外です。

日付を文字列として挿入するとうまくいきました。しかし、並べ替えの問題のため、日付形式の日付が必要です。何が悪いのか教えてください??

4

2 に答える 2

0

java.util.Datejava.sql.Date内部に変換するとどうなりますかsetDate()

    String date = request.getParameter("date");//get the requested String
Date utilDate = new SimpleDateFormat("yyyy-mm-dd").parse(date);//format using java.util.Date

ps.setDate(4, new java.sql.Date(utilDate.getTime()));//insert
于 2012-04-08T13:24:19.940 に答える
0

に挿入するために使用している日付形式を確認してくださいMS SQLMS SQL予想とは異なる形式で日付を挿入しようとしているようです。デフォルトの日付形式MS SQLが使用されている経験はあまりありません。

それを確認し、その形式での日付の変換が機能するはずです。

于 2012-04-09T06:37:13.230 に答える