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”语句上方所示。代码将 SQLException 作为com.microsoft.sqlserver.jdbc.SQLServerException:索引 6 超出范围。

当我将日期作为字符串插入时,它工作正常。但由于排序问题,我需要日期格式的日期。请告诉我怎么了??

4

2 回答 2

0

查看您用于插入的日期格式MS SQL。您似乎正试图以其他格式插入日期,而不是MS SQL预期的格式。我没有太多MS SQL使用默认日期格式的经验。

检查并以该格式转换您的日期应该可以工作。

于 2012-04-09T06:37:13.230 回答
0

当您将 to 转换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 回答