2010年8月10日 星期二

when the type of table's column is DATETIME

當資料庫欄位是 DATETIME 時,該怎麼辦呢?

在遇到此問題前,筆者都是直接對該欄位下SQL,直接把日期時間以String型態寫入DB,

但是,因為EJB CMP的關係,必須以DATE型態直接寫入,不能再使用String的方式。

果真讓筆者傷腦筋啊~

---
方法一:把String 轉成DATE
參考網址

String date = "2003-10-04 18:30:25";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ParsePosition pp = new ParsePosition(0);
try {
Date date = df.parse(date);
System.out.println (date.toString());
} catch (Exception e) {
e.printStackTrace();
}
//RESULT: Sat Oct 04 18:30:25 CST 2003


p.s. 但我要的格式並沒有成功,雖然有成功轉成date物件 Q_Q
------------------------------------
方法二:

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date() ;
System.out.println(dateFormat.format(date));

//RESULT: 2010-08-10 00:22:42


p.s. 但使用dateFormat.format() 的結果是把日期轉成String,結果還是無法把日期時間寫入資料庫。
------------------------------------
方法三:


java.util.Date ud = java.util.Date ud = java.util.Calendar.getInstance().getTime();
java.sql.Timestamp time = new java.sql.Timestamp(ud.getTime());
System.out.println(time.toString());
//RESULT: 2010-08-10 22:18:37.643


使用TIMESTAMP物件,轉換時間成功,這時,就可以成功寫入物件。

結論,java的世界真是博大精深啊!!!

以上。

沒有留言:

張貼留言