2011-01-31 86 views
2

我想寫一個存儲過程,它可以讓我在日期範圍內獲得數據。我不能使用「之間」,它是給出範圍之間的數據,我需要的範圍是從2011年1月1日到2011年1月30日(必須包含30個月的數據)如何使用查詢/ SP從sql date中獲取數據到date

+0

如果test_expression的值大於或等於begin_expression的值且小於或等於end_expression的值,則BETWEEN返回TRUE。 – 2011-01-31 11:49:02

+0

ashish.chotalia說'BETWEEN`按照你想要的方式工作,而不是你認爲的方式。它包括終點。 – 2011-01-31 11:55:53

+0

對不起,我嘗試過與之間,但不幸的是,它不包括最後的界限。 – 2011-01-31 13:03:26

回答

8
SELECT ... FROM ... WHERE somecol >= '2011-01-01' AND somecol <= '2011-01-30' 
1

您可以使用「> = AND <」條件而不是BETWEEN。

假設你在@DateTo傳遞的結束日期,你要包括:

SELECT Something 
FROM YourTable 
WHERE DateField >= @DateFrom 
    AND DateField < DATEADD(dd, 1, @DateTo) 

例如傳入@DateFrom ='20110101'和@DateTo ='20110130',那麼這將返回從1月1日到1月30日的所有記錄。