假设有人想要租用同一辆车,如果请求的日期范围属于汽车已经租出的日期范围之一 - 我该如何检查可用性?我在jsp页面上使用bean,servlet和jstl。
我想它应该是一个比较器?
答案 0 :(得分:4)
如果您在Java中进行比较,java.util.Date
类已经实现了Comparable
,那么您可以使用其compareTo()
方法。但您也可以使用SQL中的<
和>
运算符在数据库中进行比较。
还有SQL OVERLAPS函数,它允许您比较两个日期范围以查看它们是否相互重叠。如果您的数据库支持它,那可能更简单,更有效。
例如,假设您的表名为“预订”,您可以执行以下操作:
SELECT id FROM reservations
WHERE (DATE '2012-03-29', DATE '2010-04-01') OVERLAPS (start_date, stop_date)
AND car_id = 12345;
如果返回任何行,则表示已经预订了与该日期范围冲突的汽车12345。