如下图:
遇到这种问题是我日期直接手动插入不识别出现的bug。
正确的解决方式:
结果发现不是这个原因,哈哈哈。
我改了多次发现还是不行
String sql="SELECT ORDERTIME_ID,USER_ID,ORDER_DATE,ORDER_HOUR FROM T_ORDERTIME WHERE USER_ID=?"
+ " AND ORDER_DATE= ? ";
后来使用了to_char去转换日期,还是不行,忘了截图了。
最后改可以了,是这样的:
String sql="SELECT ORDERTIME_ID,USER_ID,ORDER_DATE,ORDER_HOUR FROM T_ORDERTIME WHERE USER_ID=?"
+ " AND ORDER_DATE= TO_DATE(?,'yyyy-mm-dd')";
具体是这样的:
接口:
//根据咨询师ID和日期,查出可预约时间
public List<OrderTime> queryOrderTime(int userId,String orderDate);
实现类:
@Override
public List<OrderTime> queryOrderTime(int userId, String orderDate) {
PreparedStatement ps=null;
ResultSet rs = null;
Connection conn = null;
List<OrderTime> orderTimeList=new ArrayList<OrderTime>();
String sql="SELECT ORDERTIME_ID,USER_ID,ORDER_DATE,ORDER_HOUR FROM T_ORDERTIME WHERE USER_ID=?"
+ " AND ORDER_DATE= TO_DATE(?,'yyyy-mm-dd')";
try {
conn = DBUtil.getConnection();
ps= conn.prepareStatement(sql);
ps.setInt(1, userId);
ps.setString(2,orderDate);
rs = ps.executeQuery();
while(rs.next()) {
int ordertimeId=rs.getInt("ORDERTIME_ID");
int userid=rs.getInt("USER_ID");
String orderdate=rs.getString("ORDER_DATE");
int orderHour=rs.getInt("ORDER_HOUR");
OrderTime temp=new OrderTime(ordertimeId,userid,orderdate,orderHour);
orderTimeList.add(temp);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtil.closeConn(conn, ps, rs);
}
return orderTimeList;
}