Java比较日期

时间:2012-03-30 00:14:27

标签: java mysql comparator

我有一个供应商数据库,他们租车。大多数人租用2-3天。 在数据库上,我将租金开始日期/时间存储为日期时间格式。租金结束日期也是日期时间格式。

假设有人想要租用同一辆车,如果请求的日期范围属于汽车已经租出的日期范围之一 - 我该如何检查可用性?我在jsp页面上使用bean,servlet和jstl。

我想它应该是一个比较器?

1 个答案:

答案 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。