在Access DB中插入日期 - 零日期

时间:2014-11-21 00:55:12

标签: java sql date ms-access

我正在用Java创建一个库项目,该项目应该记录有关成员,书籍,用户和借阅的数据。当我创建类Borrowing的新对象时,系统会自动记录IssueDate。 当我尝试使用UPDATE SQL QUERY记录返回的书并记录ReturnDate时,问题就出现了。查询有效,但在相应字段的DB中,我总是得到30/12/1899作为ReturnDate。 SQL查询如下:

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,因为这是我手动输入时识别的格式,它适用于项目中的所有其他查询(如创建新的Booking和IssueDate)进入真实日期。

我已经尝试过使用java.sql.Date,切换到美国格式(mm / dd / yyyy)并在日期字符串的开头和结尾使用#(哈希标记),但这些都不起作用。 你还有其他想法吗?

1 个答案:

答案 0 :(得分:0)

请考虑使用PreparedStatement,有关详细信息,请参阅Using Prepared Statements

而不是设置"文本"查询,使用PreparedStatement的{​​{3}}并让JDBC驱动程序解决它