회원, 도서, 사용자 및 차용에 관한 데이터를 기록하는 Java 프로젝트를 만들고 있습니다. 클래스의 새 객체를 만들면 시스템 빌리기가 자동으로 IssueDate에 기록됩니다. 반환되는 책의 레코드를 만들고 SQL QUERY를 업데이트하고 ReturnDate.The 쿼리를 기록하려고 할 때 문제가 발생하지만 해당 필드의 DB에서 항상 ReturnDate로 30/12/1899를 얻습니다. SQL 쿼리는 다음과 같이 진행됩니다Access DB에 날짜 삽입 - 0 일자
UPDATE Booking SET Returned = 1, ReturnDate = "+ sdf.format(getReturnDate()) +" WHERE BookingID =" + getBookingID()
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
setReturnDate(new Date());
내가 수동으로 입력 할 때 그 형식 액세스가 인식하기 때문에 문자열 및 형식 일/월/년으로 포맷하기로 결정하고 다른 모든 쿼리를했다 (같은 새로운 Booking 및 IssueDate 생성) 실제 날짜를 입력합니다.
나는 이미 java.sql.Date 대신 미국 형식 (mm/dd/yyyy)으로 전환하고 날짜 문자열의 시작과 끝 부분에 # (해시 표시)를 사용하고 아무 것도 작동하지 않았다. . 다른 아이디어가 있습니까?
사용하여 생각 해보자' PreparedStatement'를 참조하십시오. 자세한 내용은 [Prepared Statements 사용] (http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html)을 참조하십시오. – MadProgrammer
형식이 지정된 텍스트를 인용하거나 이스케이프해야합니까? 사실, 필요한 열에'PreparedStatement'와'setDate'를 사용하고 JDBC 드라이버가 처리하도록하십시오 – MadProgrammer
@MadProgrammer 고마워, 그 것이었다 :) – banana