1.數據庫中的日期時間類型與Java類中日期時間的對應
- 日期類型用java.sql.Date
- 時間類型用java.sql.Time
- 日期/時間類型用java.sql.Timestamp
范例:在oracle數據庫中通過,
select sysday from dual
獲取當前時間,在通過ResultSet獲取查詢結果時,用:getTimestamp(),可以把年月日時分秒都取出來,調用getDate()只能取出年月日,調用getTime()只能取出時分秒。
2.盡量不要調用getString()來獲取日期/時間類型的數據
調用getString()獲取時間類型的數據,JDBC在內部將日期/時間轉換為字符串;但是這個字符串的格式卻取決於數據庫導致兼容性較差。
3.如何將JDBC的日期/時間類型轉換為字符串
java.sql.Timestamp timeStamp = //通過數據庫訪問獲取到該數據
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(timeStamp);
4.select、update或insert時,如果某個字段為日期/時間類型,最好用PreparedStatement
PreparedStatement pstmt = conn.prepareStatement("insert into tab ( begin_date ) values( ?)");
pstmt.setTimestamp(1, new Timestamp(System.currentTimeMillis()));
pstmt.execute();
5.java.sql.Timestamp如何轉換為java.util.Date
java.sql.Timestamp是java.util.Date的子類,不需要做任何轉換直接賦值即可:
java.sql.Timestamp ts;
java.util.Date utilDate;
utilDate = ts;
6. java.util.Date轉換為java.sql.Timestamp
java.sql.Timestamp ts;
java.util.Date utilDate;
ts.setTime(utilDate.getTime());
7.mysql數據庫中的日期時間
- NOW()、SYSDATE()函數以`'YYYY-MM-DD HH:MM:SS'返回當前的日期時間,可以直接存到DATETIME字段中。
比如:select NOW(),SYSDATE(); - CURDATE()、CURRENT_DATE以’YYYY-MM-DD’的格式返回今天的日期,可以直接存到DATE字段中。
比如:SELECT CURDATE(),CURRENT_DATE; - CURTIME()、CURRENT_TIME以’HH:MM:SS’的格式返回當前的時間,可以直接存到TIME字段中。
比如:SELECT CURRENT_TIME(),CURRENT_TIME;