2014-07-23 94 views
0

在SQL Server表中有兩個日期:開始日期時間和結束日期時間。現在我想在日期時間內搜索所有結果。例如,這表:如何在兩個日期之間找到所有結果?

id|name|starttime|endtime 
1|Peter|2014-07-22 07:00|2014-07-22 15:00 
2|John|2014-07-22 08:00|2014-07-22 17:00 
3|Martin|2014-07-22 07:30|2014-07-22 12:00 

現在我想現在誰匹配的所有結果在2014年7月22日07:50

我看看到BETWEENDATEDIFF但是認爲不適合工作它。

+0

提示:您希望查找在開始時間和結束時間之後發生日期的結果。 – DavidG

+0

是的,這是結論,但我怎麼能達到這個目標? – kockiren

+0

閱讀並將邏輯分解成更小的部分,然後它非常簡單。 – DavidG

回答

1

最新錯誤 SELECT * FROM表WHERE @Parameter BETWEEN startTime AND endTime?

+0

如果我設置startdate和enddate,我可以設置我的日期時間我要找? – kockiren

+0

好的 - 我想你在問:「我不知道如何將參數傳遞給一塊SQL,以便將其值與數據庫中保存的數據進行比較」?在這種情況下,答案很大程度上取決於您使用的工具 - SQL企業管理器? .net編程語言? – PhillipH

+0

對不起,現在我明白你了,是的,這是解決方案。謝謝 – kockiren

2

試試這個:

Select * 
From YourTable 
Where StartDate <= @YourDate 
    and EndDate >= @YourDate 
1

打破你的邏輯,你想找到結果,其中your date occurs after starttimeyour date occurs before endtime

打破它進一步下降,你有2個條件:

  1. YourDate>開始時間
  2. YourDate <結束時間

所以現在我們可以寫我們的SQL:

SELECT * 
FROM YourTable 
WHERE @YourDate > starttime 
AND @YourDate < endtime 

請注意,您沒有指定您指定的時間是否可以精確地出現在開始時間或結束時間。如此,用<=>替換<>=

還有其他方法可以實現相同的目標,但是這表明如何將問題分解爲更小的部分,這通常是編寫SQL查詢時解決方案的路徑。

相關問題