这是我的代码的一部分
java.sql.Date d1=java.sql.Date.valueOf("2011-03-02");
java.sql.Date d2=java.sql.Date.valueOf("2011-03-10");
java.sql.Date systemDate=java.sql.Date.valueOf("2011-03-04");
String sql="select id from period where '"+systemDate+"' between '"+d1+"' and '"+d2+"'";
这是我的代码。我希望得到这些日期之间的ID。但我没有得到理想的结果。我收回了表格中的所有内容。
答案 0 :(得分:1)
当您使用其他SQL工具(例如pgadmin用于PostgreSQL或SQL Developer for Oracle)时,您是否有良好的结果?
然后尝试使用PreparedStatement。在你的情况下,这将是:
PreparedStatement pstmt = con.prepareStatement("select id from period where ? between ? and ?");
pstmt.setDate(1, systemDate);
pstmt.setDate(2, d1);
pstmt.setDate(3, d2);
答案 1 :(得分:0)
您没有使用表格中的字段与日期范围进行比较。
您正在做的是检查04-03-2011是否在02-03-2011和10-03-2011之间,对于每条记录都是如此。
你想做的是这样的(假设start_date是你表中的一列):
String sql="select id from period where start_date between '"+d1+"' and '"+d2+"'";
(另外,我同意上面的答案,准备好的陈述是构建查询的更好方法。)