我想要檢索的數據,其中開始和結束日期之間的日期之間是在今天之間和十天之後。我在軌道但即使我在MySQL中獲得查詢,我可以將其轉換爲rails活動記錄。檢索數據的開始日期和結束日期之間的日期之間是在今天和十天後在rails或sql
像這樣之一:
select * from users where(between users.from and users.to = between '2012-11-25 11:52:33' and '2012-12-05 11:52:33')
我想要檢索的數據,其中開始和結束日期之間的日期之間是在今天之間和十天之後。我在軌道但即使我在MySQL中獲得查詢,我可以將其轉換爲rails活動記錄。檢索數據的開始日期和結束日期之間的日期之間是在今天和十天後在rails或sql
像這樣之一:
select * from users where(between users.from and users.to = between '2012-11-25 11:52:33' and '2012-12-05 11:52:33')
的間隔(A,B)與重疊(C,d)當且僅當一個< d和B> C。此外,curdate()
函數返回當前日期(「今天」)。要計算未來十天的日期,您可以使用+ interval 10 day
。
結合這些信息比特你:
select ... where users.to > curdate()
and users.from < curdate() + interval 10 day
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。 :)
你能否詳細說明你在這裏做什麼? –
Soory,但如果我的開始日期是在今天之前和結束日期在說11天之後,這不起作用 –
請更改問題。如果開始日期是在今天之前,結束日期是在11天之後,那麼開始日期和結束日期在今天到十天之後都是*非*,這就是你所問的。 – Joni