2011-09-28 32 views
2

我有一個ID字段表中的兩個日期字段名爲From_Date和To_Date。我想用日期標準選擇這個日期。兩個日期字段中的條件與兩個日期參數

ID From_Date To_Date 
1 2011-05-03 2011-05-28 
2 2011-04-29 2011-05-10 
3 2011-05-09 2011-05-20 
4 2011-04-28 2011-05-09 
5 2011-04-29 2011-05-19 
6 2011-05-09 2011-05-09 
7 2011-05-09 2011-05-09 
8 2011-05-09 2011-05-09 
9 2011-05-21 2011-05-21 
10 2011-06-06 2011-06-06 
11 2011-05-21 2011-05-28 
12 2011-05-14 2011-05-28 
13 2011-05-23 2011-05-24 
14 2011-05-27 2011-05-27 
15 2011-05-23 2011-05-24 

現在我想要兩個參數的開始日期和結束日期的條件 像

@StartDate = '05/01/2011' 
@EndDate = '05/10/2011' 

而且我想從這些參數輸出時開始日期和結束日期參數之間的日期日益陣列應該比較

ID From_Date To_Date 
1 2011-05-03 2011-05-18 
2 2011-04-29 2011-05-10 
3 2011-05-09 2011-05-20 
4 2011-04-28 2011-05-09 
5 2011-04-29 2011-05-19 
6 2011-05-09 2011-05-09 
7 2011-05-09 2011-05-09 
8 2011-05-09 2011-05-09 
:FROM_DATE和TO_DATE字段

輸出之間的日期的陣列0

這是可能的單一查詢而不是使用觸發器或函數?

+1

歡迎to Stack Overflow @Vinay Mistry,請使用'{}'(工具欄按鈕)來表示您的代碼部分,數據表值等。 –

回答

1

如果你想獲得具有FROM_DATE或日期範圍之間TO_DATE在所有記錄(@StartDate和@EndDate),那麼它就是簡單的查詢,如:

SELECT * FROM TableName 
WHERE (From_Date BETWEEN @StartDate AND @EndDate) OR (To_Date BETWEEN @StartDate AND @EndDate) 
+1

您的建議不考慮'From_Date'位於'@StartDate之前的情況'和'To_Date'在'@ EndDate'之後。根據示例輸出結果,這也應該被考慮(見'ID = 5'的行)。 –

+0

@AndriyM:沒錯,我在我的回答中提到過。因此,對於案例ID = 5,Mikael的答案是正確的。 –