3

我需要用日期和时间更新记录,但我很困惑使用 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));

更新:

当我使用 CURRENT_TIMESTAMP 时,我在下面有 2 个 prepareStatement,而对于第二个,我使用了 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();
4

1 回答 1

0

第一种方法直接使用 SQL 函数。它具有数据库依赖性。第二种方法通过java方法,不能直接使用SQL函数。它没有数据库依赖。如果要使用可移植代码,请使用第二种方法。

于 2012-08-27T10:37:29.220 回答