Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Access数据库中插入日期-零日期_Java_Sql_Date_Ms Access - Fatal编程技术网

Java 在Access数据库中插入日期-零日期

Java 在Access数据库中插入日期-零日期,java,sql,date,ms-access,Java,Sql,Date,Ms Access,我正在用Java制作一个图书馆项目,它应该记录关于成员、书籍、用户和借阅的数据。当我创建类借用的新对象时,系统会自动记录IssueDate。 这个问题发生在我尝试记录要返回的书籍并更新SQL查询并记录返回日期时。查询可以工作,但在对应字段的DB中,我总是得到30/12/1899作为返回日期。 SQL查询如下所示: UPDATE Booking SET Returned = 1, ReturnDate = "+ sdf.format(getReturnDate()) +" WHERE Bookin

我正在用Java制作一个图书馆项目,它应该记录关于成员、书籍、用户和借阅的数据。当我创建类借用的新对象时,系统会自动记录IssueDate。 这个问题发生在我尝试记录要返回的书籍并更新SQL查询并记录返回日期时。查询可以工作,但在对应字段的DB中,我总是得到30/12/1899作为返回日期。 SQL查询如下所示:

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

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
setReturnDate(new Date());    
我决定将其格式化为字符串并格式化为dd/mm/yyyy,因为这是Access在我手动输入时识别的格式,它处理项目中的所有其他查询(如创建新预订和发布日期),并输入真实日期

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

请考虑改用
PreparedStatement
,有关更多详细信息,请参阅


与其设置查询的“文本”,不如使用
PreparedStatement
,让JDBC驱动程序计算出来

考虑改用
PreparedStatement
,有关更多详细信息,请参阅是否不需要引用或转义格式化文本?实际上,只需在所需列上使用
PreparedStatement
setDate
,让JDBC驱动程序处理it@MadProgrammer谢谢,这很有效:)这是一个很好的改变。。。