1. 程式人生 > 其它 >為什麼會出現Date型別傳到資料庫後面的時分秒變為0?

為什麼會出現Date型別傳到資料庫後面的時分秒變為0?

技術標籤:資料庫資料庫javamysqlsql

前言:今天寫程式碼的時候遇到了一個問題,現在來和大家分享一下:

建立時間:crea_time在資料中是Datetime型別
在這裡插入圖片描述

但是當我在實體類上使用 @Temporal 註解來給這個日期型別進行轉換時,如果要是用

@Temporal(TemporalType.Date)

然後再向資料庫中新增的時候用的

setCreateTime(new Date());

這種寫法在新增到資料庫之後,後面的時分秒回變成0,這種情況的發生一般是由於時間日期物件使用錯誤造成的。

  • java.util.Date是不能直接插入資料庫中的,雖然它包含了日期和時分秒
  • java.sql.Date可以直接插入資料庫,但是它只有日期而沒有時間
  • java.sql.Time可以直接插入資料庫,但是它只有時間,沒有日期

顯然這些都不滿足我們的需求

解決:

@Temporal(TemporalType.TIMESTAMP)

setCreatetime(new Timestamp(new Date().getTime()));

這樣解決了問題