添加当前日期时间逻辑后,无法在java中的数据库中插入数据

时间:2012-04-07 09:17:04

标签: java sql sql-server database jsp

我有以下代码

查询是

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超出范围。

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

2 个答案:

答案 0 :(得分:0)

java.util.Date

内将java.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

答案 1 :(得分:0)

查看您在MS SQL中插入的日期格式。您似乎试图以MS SQL期望的其他格式插入日期。 我没有太多经验使用默认日期格式MS SQL

检查并以该格式转换日期应该有效。