我使用這個查詢來獲取對象重疊之間「起始日期」和「END_DATE」期間,而且,我想獲取日期對象結束於開始日期和對象開始結束日期。SQL「重疊」只得到起點和終點之間的日期(不包括開始和結束日期)
我用
where("(start_date, end_date) overlaps (date ?, date ?), start_date, end_date"
但對象有特定日期< =起始日期或> = END_DATE是不搞定。
這個 '重疊' 只得到對象有特定日期起始日期<日期< END_DATE,而不是 「=」。
例如,start_date ='2011/2/1',end_date ='2011/3/31'。對象的日期結束日期爲'2011/2/1'或開始日期'2011/3/31'將不會獲得,只有'2011/2/1'和'2011/3/31'之間的日期纔會獲得。如何在start_date中包含保存日期結束的對象並在end_date上啓動?
----------------------編輯---------------------- ------
我嘗試使用:
where("(start_date, end_date) overlaps (date ?, date ?), start_date-1.day, end_date+1.day"
來解決這個問題,但是當我做類似上面,如果開始= '2011/2/1' 日期,結束日期='2011/3/31',那麼對象持有'2011/1/31'也返回,這應該不會得到。
謝謝,但它沒有幫助... – Mellon 2011-03-07 09:12:54
你沒有得到你想要的日期範圍? – Staelen 2011-03-07 09:14:01
如果設置了start_date ='2011/2/1'和end_date ='2011/3',我想要的是對象保存日期從'2011/1/1'到'2011/2/1'將返回/ 31',這就是爲什麼我使用'重疊' – Mellon 2011-03-07 09:15:01