根据时间段获取信息
这是我的代码:
<%
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String year = request.getParameter("year");
String month = request.getParameter("month");
String day = request.getParameter("day");
String year2 = request.getParameter("year2");
String month2 = request.getParameter("month2");
String day2 = request.getParameter("day2");
StringBuilder sbr = new StringBuilder();
String date1 = sbr.append(year).append("-").append(month).append("-").append(day).append(" ").append("00").append(":").append("00").append(":").append("00").toString().trim();
String date2 = sbr.append(year2).append("-").append(month2).append("-").append(day2).append(" ").append("23").append(":").append("59").append(":").append("59").toString().trim();
java.util.Date date3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(date1);
String time1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date3);
java.util.Date date4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(date2);
String time2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date4);
if(time1.compareTo(time2)<0){
conn = new connDB().getConn();
String sql = "select * from subject where time >= '"+time1+"' and time <= '"+time2+"'";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()){
int id = rs.getInt("id");
String title = rs.getString("title");
String username = rs.getString("username");
java.util.Date time = rs.getDate("time");
%>
<tr>
<td><%=title %></td>
<td><%=username %></td>
<td><%=time %></td>
<td><a href="delete.jsp?id=<%=id %>">删 除</a></td>
<td><a href="showreply.jsp?id=<%=id %>">查看回帖</a></td>
</tr>
<tr>
<td></td><td></td><td></td><td></td>
<td>
<a href="deleteall.jsp?date1=<%=date1 %> & date2=<%=date2 %>">删除全部</a>
</td>
</tr>
</table>
</center>
<%
}
}
%>
为什么总是提取不出来数据库中的信息呢? 但是用sql语句在mysql中却能显示信息。 烦请各位大侠帮帮忙呗?
[解决办法]
看你只判断time1小于time2了,如果大于等于就不会执行查询
[解决办法]
String sql = "select * from subject where time >= '"+time1+"' and time <= '"+time2+"'";
time是sql里的 关键字,肯定会报错。