日期:2014-05-20  浏览次数:20770 次

向sql数据库中插入时间出错,请大家帮忙!
我向sql中插入数据后出现如下错误:
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。

以下是代码片段:

public static void main(String[] args) {
// TODO Auto-generated method stub
Connection con= null;
PreparedStatement pStat = null;

SimpleDateFormat hm = new SimpleDateFormat("yy-mm-dd hh:mm:ss");
con=ConnectionManager.getConnection();
String sql = "insert into FirstLevelTitle values(?,?,?,?)";
try {
pStat = con.prepareStatement(sql);
pStat.setInt(1, 7);
pStat.setString(2, "智慧");
pStat.setString(3, "指挥者");
pStat.setString(4, hm.format(new Date()));
pStat.executeUpdate();
System.out.println("插入成功");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
ConnectionManager.closePstat(pStat);
ConnectionManager.closeConnection(con);
}
}

pStat.setString(4,hm.format(new Date()));这句话错误,试过setChar,setDate都出错,不知什么原因了,实在想不出,请大家给看看。

------解决方案--------------------
pStat.setString(4, hm.format(new Date())); 
--> 
pStat.setTimestamp(4, Timestamp.valueOf(hm.format(new Date()))); 

------解决方案--------------------
pStat.setTimestamp(4, hm.format(Calendar.getInstance().getTime()));