2010-04-03 57 views
3

我必須從PostgreSQL數據庫中獲得與給定標題和發佈日期相匹配的影片。 標題是一個字符(75),releaseDate是一個日期。我有這樣的代碼:Date,preparedStatement,JDBC和PostgreSQL的問題

String query = "SELECT * FROM \"Movie\" WHERE title = ? AND \"releaseDate\" = ?)"; 
Connection conn = connectionManager.getConnection(); 
PreparedStatement stmt = conn.prepareStatement(query); 
java.sql.Date date = new java.sql.Date(releaseDate.getTime()); 
stmt.setString(1, title); 
stmt.setDate(2, date); 
ResultSet result = stmt.executeQuery(); 

但它不工作,因爲releaseDate不匹配時它應該。 查詢SELECT * FROM "Movie" WHERE title = A_MOVIE AND "releaseDate" = A_DATE在使用psql的命令shell中完美工作

+0

如果'releaseDate'是'java.sql.Date',爲什麼它調用'的setDate()'之前複製到'date'? – trashgod 2010-04-03 04:07:42

+0

不是java.sql.Date是java.util.Date – GuidoMB 2010-04-03 04:10:28

+1

'releaseDate'的確切SQL列類型是什麼?它真的是'約會'嗎?還有'時間戳'。你使用哪種PostgreSQL數據庫版本和JDBC驅動程序版本?啊哈! – BalusC 2010-04-03 04:11:05

回答

3

由於時間格式已從dd/MM/YYYY更改爲MM/dd/YYYY,因此問題出在數據庫中。

感謝

+0

啊! http://www.postgresql.org/docs/current/static/datatype-datetime.html#DATATYPE-DATETIME-INPUT – trashgod 2010-04-03 05:09:05