關於編程語言中的時間格式和關系型數據中的中時間格式問題的轉化一直都是個簡單而又不得不權衡的問題,這牽扯到數據庫設計和SQL編程和應用程序中時間格式數據的處理的編程,兩者總能夠交纏在一起。
關於Java中的時間格式和數據庫中的時間格式轉換在這裡先寫兩個方法:
- /**
- *
- * @param utilDate
- * @return
- */
- publicstatic java.sql.Date convertUtilDateToSqlDate(java.util.Date utilDate) {
- java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
- return sqlDate;
- }
- /**
- *
- * @param sqlDate
- * @return
- */
- publicstatic java.util.Date convertSqlDateToUtilDate(java.sql.Date sqlDate){
- java.util.Date utilDate =new java.util.Date(sqlDate.getTime());
- return utilDate;
- }
普通的轉換是很容的,但是想要獲取到一定的格式就得下些功夫了。
1.從應用程序中向數據庫中寫入字段類型為Date類型的數據
比如:PreparedStatement.setDate(int ,java.sql.Date)方法 說明:其中的java.sql.Date可以用上面的方法轉化得到
比如:TO_DATE(new SimpleDateFormat().format(ud,"yyyy-MM-dd HH:mm:ss"),"YYYY- MM-DD HH24:MI:SS")
可以通過SQL語句進行處理:SQL=“UPDATE TABLENAME SET TIMER = TO_DATE(" "+ TIMEMISS +" ", ' yyyymmddhh24miss' ) WHERR ... ” 注 TIMEMISS 為變量 例如:20080522131223 類型
2. 將指定格式的字符串轉換為數據庫的時間類型java.sql.Date
通過如下方法可以實現:
方法一:
- publicstatic java.sql.Date convertStringToSqlDate(String formatStr, String timeStr) {
- SimpleDateFormat bartDateFormat = new SimpleDateFormat(formatStr);
- java.sql.Date sqlDate = null;
- try {
- java.util.Date date = bartDateFormat.parse(timeStr);
- sqlDate = new java.sql.Date(date.getTime());
- System.out.println(sqlDate.getTime());
- } catch (Exception ex) {
- System.out.println(ex.getMessage());
- }
- return sqlDate;
- }
方法二:
- String strDate = "2002-08-09";
- StringTokenizer st = new StringTokenizer(strDate, "-");
- java.sql.Date date = new java.sql.Date(Integer.parseInt(st.nextToken()));
這樣通過不同的方式都可以解決這個問題。