向mysql中插入格式爲"yyyy-MM-dd HH:mm:ss"的時間

某個table中有一個類型爲datetime的字段,想向其插入一個時間,格式爲"yyyy-MM-dd HH:mm:ss";
開始我的做法是,sql中執行 ps.setDate(2,date)。。。發現,插入的成功後,後臺數據庫的時間的時分秒顯示總是爲00:00:00.
我在sql執行前已經事先格式話好了。
SimpleDateFormat sfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String rReceptDate = sfd.format(date);
java.sql.Date date2 = java.sql.Date.valueOf(cFinishDate);
ps.setDate(7, date2);

  上面那種就直接出bug:
java.lang.NumberFormatException: For input string: "18 02:18:15"
  不懂,就問度娘,發現絕大多數還是叫我們先format格式好先,再插入。
  另外,將當前時間插入mysql的,我按照別人說的,試了一次:
ps.setDate(2, new java.sql.Date((long)new java.util.Date().getTime()));
結果,mysql數據中就是時分秒沒有記錄,顯示 00:00:00。

   其實,我一直以爲在mysql中格式爲date,datetime等時間類型的數據,在java執行sql插入時,要一定用 ps.setDate 方法,不經意間,
看到一個網友寫到可以直接用 setString 插入,當然事先格式好要插入時間的格式。經實驗,用setString 插入真的很方便。

再說,要是還是類型爲datetime的字段,要按格式“yyyy-MM-dd HH:mm:ss”從數據庫中讀取出來,我真心不會。怎麼都是隻能讀取到“yyyy-MM-dd”格式的。

因此,最好的辦法就是將字段的類型改用爲varchar來存儲時間。大大省去了格式轉化帶來的麻煩。
發佈了67 篇原創文章 · 獲贊 3 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章