2011-09-05 301 views
1

我有一個日期範圍像如何檢查的日期範圍的日期,兩個日期之間坐落於MySQL查詢

日期= 2011-10-14 &日期= 2011-10-20

如果我有另一個日期範圍

- 2011-10-11 - 2011-10-15 
- 2011-10-11 - 2011-10-21 
- 2011-10-15 - 2011-10-21 
- 2011-10-15 - 2011-10-19 
- 2011-10-21 - 2011-10-26 

我想SQL查詢,顯示其僅日期之間的上述(2011-10-14 & date to=2011-10-20)日期[R在於日期範圍安格。

這裏只2011-10-21 - 2011-10-26不在於date from=2011-10-14 & date to=2011-10-20

結果必須顯示

- 2011-10-11 - 2011-10-15 
- 2011-10-11 - 2011-10-21 
- 2011-10-15 - 2011-10-21 
- 2011-10-15 - 2011-10-19 

這些日期

希望你明白我問。

+0

首先,你使用什麼數據類型? 'Datetime'?而你說你想要在14號和20號之間。所以在所有的本質上,你真的想要> 14? – rzetterberg

+0

另一個日期範圍 - 它是什麼?他們保存在某個表格中還是通過用戶輸入提供? – heximal

+0

這些範圍如何存儲在數據庫中?每個在DATE字段的單獨列中?或單個字符串中的字符串?你試過什麼了? –

回答

7
date_from < '2011-10-20' AND date_to > '2011-10-14' 
+0

非常感謝你Mikael ...由問題解決....有gr8救濟... – sujal

0

WHERE date_from >= '2011-10-14' AND date_to <= '2011-10-20'

但這個如果你有你的列的數據類型設置爲DATEDATETIME只會工作

+0

不適用於2011-10-11 - 2011-10-15 2011-10-11 - 2011-10-21 這些日期 – sujal

0
SELECT * FROM datetable where mydate BETWEEN '2011-10-14' AND '2011-10 20'; 
+0

mydate在範圍內,即 2011-10-11 - 2011-10-15,2011-10-11 - 2011-10-21,2011-10-15 - 2011-10-21,2011-10-15 - 2011-10-19並檢查日期是否在2011-10-15 - 2011-10-19(2011-10-16,2011-10-17,2011-10-18,2011-10-19)位於日期= 2011-10-14&date to = 2011-10-20 – sujal

0

你可以去網上搜索:-)

你就可以通過來的第一個鏈接是這樣的: http://www.c-sharpcorner.com/Blogs/692/

希望以上鍊接有助於解決您的查詢。

或者,你可以給這樣的事情:

SELECT * FROM myTBL WHERE myReqDate NOT BETWEEN '2011-10-14' 和 '2011-10-20'

+0

myReqDate在範圍內即2011-10-11 - 2011-10-15 2011-10-11 - 2011-10-21 2011-10 -15 - 2011-10-21 2011-10-15 - 2011-10-19 並檢查日期是否類似於例如2011-10-15 - 2011-10-19(2011-10-16,2011-10-17,2011-10-18,2011-10-19)位於*日期從= 2011-10-14&date to = 2011-10-20 * – sujal