我需要更新带有日期和时间的记录,但我很困惑使用sql server 2005的CURRENT_TIMESTAMP或JAVA的日期对象,两者都给我相同的结果。
示例:
select CURRENT_TIMESTAMP
这将打印2012-08-27 14:30:17.193
以下这个java代码也会明显地做同样的事情,但有什么不同。
Date dNow = new Date( );
SimpleDateFormat ft =
new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss.SSS ");
System.out.println("Current Date: " + ft.format(dNow));
更新
我有2个prepareStatement,因为我使用了CURRENT_TIMESTAMP,而第二个我使用了JAVA的日期对象(日期对象让它成为util.Date或sql.Date)。
语句1
pst = con.prepareStatement("insert into sLog(logUser, logType, logSystem, logTime)
values(?, ?, ?, CURRENT_TIMESTAMP)");
pst.setString(1, logUser);
pst.setString(2, logType);
pst.setString(3, logSystem);
pst.executeUpdate();
语句2
pst = con.prepareStatement("insert into sLog(logUser, logType, logSystem, logTime)
values(?, ?, ?, ?)");
pst.setString(1, logUser);
pst.setString(2, logType);
pst.setString(3, logSystem);
pst.setString(4, format(dNow));
pst.executeUpdate();
答案 0 :(得分:0)
第一种方法直接使用SQL函数。它具有数据库依赖性。第二种方法通过java方法,不能直接使用SQL函数。它没有数据库依赖。如果你想使用可移植代码,使用第二种方法。