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 を使用している間と、JAVA の日付オブジェクトを使用した 2 番目のもの (日付オブジェクトは、util.Date または sql.Date のいずれか) を使用している間、以下に 2 つの prepareStatement があります。

ステートメント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 関数を直接使用します。データベース依存性があります。2 つ目の方法は Java メソッドを渡し、SQL 関数を直接使用することはできません。データベースに依存しません。移植可能なコードを使用する場合は、2 つ目の方法を使用します。

于 2012-08-27T10:37:29.220 に答える