2012-03-30 103 views
0

我有一個供應商的數據庫,他們租汽車。大多數人租用2-3天的時間。 在數據庫上,我有作爲日期時間格式存儲的租金開始日期/時間。租金結束日期也是日期時間格式。Java比較日期

假設有人想租用同一輛車,如果要求的日期範圍落在汽車已經出租的日期範圍之一 - 我如何檢查可用性?我在jsp頁面上使用bean,servlet和jstl。

我想它應該是一個比較?

回答

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與該日期範圍相沖突的保留。

+0

你能否給我提供一個指向compareto()方法上的任何好資源的鏈接 – Parvesh 2012-03-30 00:25:23

+1

[Oracle的Date類的文檔](http://docs.oracle.com/javase/7/docs/api /java/util/Date.html#compareTo%28java.util.Date%29)?如果您正在進行Java開發,您應該已將該網站加入書籤。 – Wyzard 2012-03-30 00:27:14