存入數據庫的日期類型(推薦)

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字符串進存儲過程

我這裏做了對應三種方法的處理,請選用 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章