1. 程式人生 > >解決資料庫中插入時間丟失時分秒

解決資料庫中插入時間丟失時分秒

java.util.Date轉換為java.sql.Date帶時分秒 
java.util.Date需要轉換為java.sql.Date,常規的方式轉換過來只可以得到年月日,如若要取得時分秒,可以用Date的子類Timestamp

Java在向資料庫中插入時間的時候,常常遇到時、分、秒丟失的情況,這種情況的發生一般是由於時間日期物件使用錯誤造成的。

java.util.Date是不能直接插入資料庫中的,雖然它包含了日期和時分秒。java.sql.Date可以直接插入資料庫,但是它只有日期而沒有時間;java.sql.Time可以直接插入資料庫,但是它只有時間,沒有日期;以上這些往往不能滿足我們的需要。

如果我們要插入日期和時間,那麼就要相辦法來使用java.sql.Timestamp來向資料庫插入。java.sql.Timestamp可包含了日前和到毫秒的時間值,在程式中,我們常常是使用的java.util.Date,所以就要有解決的方法來實現。

有如下方法將java.util.Date轉化為java.sql.Timestamp

public java.sql.Timestamp getTimestamp(Date date) {
return new java.sql.Timestamp(date.getTime());
}

這樣,我們可以將我們使用的java.util.Date轉化,然後插入資料庫,便可以解決時、分、秒丟失的問題。


由此可以看到我們向資料庫傳入或傳出值是儘量不要使用getDate方法或setDate方法,這樣會丟失資料,解決的辦法是:
一、改用java.sql.Timestamp 
二、傳日期形式的字串,在儲存過程接收到後在儲存過程中使用to_date處理,對於輸出的使用to_char處理
三、傳TO_DATE字串進儲存過程

我這裡做了對應三種方法的處理,請選用