我需要用日期和時間來更新記錄,但我很困惑,要麼使用sql server 2005的CURRENT_TIMESTAMP,要麼使用JAVA的日期對象,兩者都給出了相同的結果。SQL日期和時間和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));
UPDATE:
我具有低於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();
SQL Sever上的命令將爲您提供服務器所在時區的日期。但是如果你使用java中的那個,你可以指定時區(或者將其設置爲GMT)。 –
@NaiduYpvs如果是這樣,我有場景的Java和SQL在哪裏,而我更新,如果最終用戶改變他的時間。它會更新最終用戶的時間還是什麼? –
老實說,您應該使用GregorianCalendar,因爲您可以爲它設置時區格式。由於Java代碼在服務器上運行,它將採用服務器的默認時間格式。 –