2013-03-01 38 views
0

我正在尋找一種方法來獲取今天的日期並傳遞到SQL表並保存在那裏。調用保存的日期並使用JODA TIME API執行一些任務。該改變喬達時間日期到SQL表,並保存有和進程繼續..日期 - Java到Sql表和SQL表通過Joda時間到Java時間

我試過這種方式,

//prints todays date 
java.sql.Date sqlDate = new java.sql.Date(new Date().getTime()); 
//passes wrong date to the table like 1970-07-01 instead of 2013-03-01 
String insert = "INSERT INTO TEST_TABLE VALUES(1,"+sqlDate+")"; 
pStmt = conn.prepareStatement(insert); 
pStmt.executeUpdate(); 

//converting to joda time 
LocalDate ld = new LocalDate(sqlDate); 

//some calculations, and how to convert back to sql date? 

我想在這裏做的就是,一個表3列(ID,開始日期,finishdate)。 ID將由用戶輸入,開始日期應該自動輸入今天的日期。經過一些計算與喬達時間和完成日期將被設置爲日期完成。

代碼

String insert = "INSERT INTO TEST_TABLE VALUES(2,'"+timestamp+"')"; 

錯誤

Data type mismatch in criteria expression 
//I have created table using MS access 
//the format of the date column is Date/Time. 
+0

你見過此http://計算器。 com/questions/8992282/convert-localdate-to-localdatetime-or-java -sql-timestamp – Freak 2013-03-01 10:41:18

+0

可能請查看底部更新的問題,我面臨錯誤,謝謝。 – vijay 2013-03-01 10:57:44

+0

請正確使用準備好的語句(通過使用'?'代替您想要的參數,然後使用相應的'setX()'函數),您的PS在技術上仍然容易受到SQL注入的影響。 – Quetzalcoatl 2013-03-01 11:34:08

回答

4

你可以在這裏使用時間戳。 java.sql.Timestamp延伸java.util.Date,所以任何你可以用java.util.Date做什麼,你也可以用java.sql.Timestamp

要轉換LocalDateTime到時間戳

Timestamp timestamp = new Timestamp(localDateTime.toDateTime().getMillis()); 

,但如果你仍然想Timestamp轉化爲java.sql.Date然後用這個

java.sql.Date date = new java.sql.Date(timeStamp.getTime()); 
+0

可能請看看底部的更新問題,我正面臨錯誤,謝謝。 – vijay 2013-03-01 10:56:40

+1

我對存儲目的及其數據類型的MS訪問不太熟悉,但嘗試將時間戳插入到java.sql.Date中,如果仍然無法將ms訪問列的數據類型轉換爲TEXT而不是日期/時間 – Freak 2013-03-01 11:00:00

+0

*我的意思是嘗試將時間戳轉換爲java.sql.Date – Freak 2013-03-01 11:13:16