2014-11-21 142 views
0

我正在製作一個Java應用程序,用於記錄有關成員,書籍,用戶和借閱的數據。當我創建類的新對象借用系統會自動記錄IssueDate。 當我嘗試創建與UPDATE SQL QUERY一起返回的記錄並記錄ReturnDate時,會發生問題。查詢在相應字段中的數據庫中工作,但我始終將其作爲ReturnDate獲取30/12/1899。 SQL查詢是這樣的:在Access數據庫中插入日期 - 零日期

UPDATE Booking SET Returned = 1, ReturnDate = "+ sdf.format(getReturnDate()) +" WHERE BookingID =" + getBookingID()  

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); 
setReturnDate(new Date());  

我決定把它格式化爲String和格式DD/MM/YYYY,因爲這是格式訪問承認,當我手動輸入,它與所有其他查詢工作(如創建一個新的預訂和發行日期),並輸入實際日期。

我已經嘗試使用java.sql.Date改爲切換到美國格式(mm/dd/yyyy)並在日期字符串的開頭和結尾使用#(散列標記),並且沒有任何這些工作。 你有其他想法嗎?

+0

考慮使用' PreparedStatement',請參閱[使用預處理語句](http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html)以獲取更多詳細信息 – MadProgrammer 2014-11-21 00:56:07

+0

格式化文本是否需要引用或轉義?實際上,只需在需要的列上使用'PreparedStatement'和'setDate',並讓JDBC驅動程序處理它 – MadProgrammer 2014-11-21 00:59:08

+0

@MadProgrammer謝謝,這工作:) – banana 2014-11-21 01:23:44

回答