開始我的做法是,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來存儲時間。大大省去了格式轉化帶來的麻煩。