2012-11-25 38 views

回答

1

的間隔(A,B)與重疊(C,d)當且僅當一個< d和B> C。此外,curdate()函數返回當前日期(「今天」)。要計算未來十天的日期,您可以使用+ interval 10 day

結合這些信息比特你:

select ... where users.to > curdate() 
and users.from < curdate() + interval 10 day 
+0

你能否詳細說明你在這裏做什麼? –

+0

Soory,但如果我的開始日期是在今天之前和結束日期在說11天之後,這不起作用 –

+0

請更改問題。如果開始日期是在今天之前,結束日期是在11天之後,那麼開始日期和結束日期在今天到十天之後都是*非*,這就是你所問的。 – Joni

0

Follwing是邏輯片段沒有確切的代碼雖然。請嘗試。

select * from users 
where users.fromDate between '2012-11-25 11:52:33' and '2012-12-05 11:52:33' 
and users.toDate between '2012-11-25 11:52:33' and '2012-12-05 11:52:33'; 

檢查* SQLFIDDLE以及

編輯按您的問題'S改寫下面的示例代碼..

猜猜你是最好,

where users.from between users.from and users.from + interval 10day 
and users.to <= user.from + interval 10 day 

那意味着,你的from date可以是任何東西(今天,昨天,一個月前,兩年到未來...)。因此,您的to-date將針對從上述from-date

希望這是有道理的間隔10d任何日期被驗證......但同樣,喬尼的答案填寫您今天的consition。 :)

+0

Joni的代碼更美觀我注意到並且乾淨 - 使用高效的命令來獲得更好的性能。他正試圖在當前日期的10天內(例如今天)告訴你任何你的開始/結束日期。我是你想要的詳盡的基本視圖;) – bonCodigo

+0

如果我的開始日期在今天之前,結束日期在說11天之後,這種情況將會失敗。 –

+0

當然,這不是動態的。這就是爲什麼我說喬尼的代碼是美麗而高效的:) – bonCodigo

相關問題