2013-03-26 105 views
1

我使用Apache POI讀取excel數據集和JPA以保存到數據庫中。這工作正常,除了事實我需要使用相同的方法(使用apache poi讀入數據庫然後保存到數據庫中)正確地獲取一組日期/時間值到數據庫中。目前我正在使用SimpleDateFormat,它確實沒有任何用處。我們需要查詢這個列,所以我需要在數據庫中理想地使用mySQL日期。時間/日期欄的通過Apache POI將日期值保存到mySql數據庫中

數據集例如

21/10/2012十三點20分00秒

的Java

 Sheet sheet1 = wb.getSheetAt(0); 

     String dateTimeFormat = "dd/MM/yyyy HH:mm:ss"; 
     SimpleDateFormat dateFormat = new SimpleDateFormat(dateTimeFormat); 


     for (int i = 1; i <= sheet1 .getLastRowNum(); i++) { 

      row = sheet1 .getRow(i); 
      String sheet1Id = i+""; 

      double excelDateTime = row.getCell(0).getNumericCellValue(); 
      Date javaDateTime=HSSFDateUtil.getJavaDate(excelDateTime,false); 
      String dateTime = dateFormat.format(javaDateTime); 

      Table1 sheet1=new Table1 (sheet1Id ,dateTime) 
      addToDatabase(table1); 

     } 

這個任何解決方案,以任何意見在mySQL數據庫中創建此列的最好方法(列目前是varchar)?

乾杯

+1

爲什麼使用'VARCHAR'而不是像'DATETIME'或'TIMESTAMP'那樣明智? – Gagravarr 2013-03-26 10:47:48

+0

我到目前爲止使用了varchar - 只是爲了讓它工作在字符串格式 - 即時通訊只是在過去幾周學習SQL,是我應該使用的類型TIMSTAMP? – user1694873 2013-03-26 10:52:27

回答

2

當使用JPA/JDBC,一個java.util.Date對應於DATETIME列(或時間戳或DATE,見MySQL-manual瞭解他們的細微差別)。由於您已經直接從HSSFDateUtil獲得Date對象,因此不需要進一步轉換。

PS:爲什麼不直接使用HSSFCell.getDateCellValue()

+0

謝謝,是的,這是我目前所擁有的 - 它不是以我想要的格式在mySql中顯示,但我不認爲這是一個問題,因爲我可以編輯數據在我的GUI前端的外觀。重要的是查詢可以正確執行,乾杯。 – user1694873 2013-03-27 11:50:31

相關問題