2012-08-03 60 views
2

我想根據兩個日期查詢我的表並檢索其中的記錄。在我的查詢中指定日期不會產生任何結果/記錄

我聲明我的變量是這樣的;

DECLARE @StartDate datetime; 
DECLARE @EndDate datetime; 

並設置我的變量像這樣;

SET @StartDate = 2012-08-01; 
SET @EndDate = 2012-08-02; 

我的WHERE子句;

WHERE Date BETWEEN @StartDate AND @EndDate 

查詢執行時不顯示任何記錄,我的錯誤是什麼?我已經嘗試添加時間到日期,但這也不起作用。

回答

3

做到這一點,而不是

SET @StartDate = '2012-08-01'; SET @EndDate = '2012-08-02'; 

或更好

SET @StartDate = Convert(datetime,'2012-08-01',120); 
SET @EndDate = Convert(datetime,'2012-08-02',120); 

這將返回在8月1日的任何數據,或標註爲午夜2月東西。它不會返回任何標記爲例如:上午9點在2 - 8月

1
DECLARE @StartDate datetime, @EndDate datetime 
SELECT @StartDate = '20120801', @EndDate = '20120802' 

SELECT * from TableName 
WHER Date between @StartDate and @EndDate 
0

WHERE Date >= @StartDate AND Date <= @EndDate 
+2

嘗試的問題不是在WHERE子句。查看其他答案。 'SET @startDate = 2012-08-01'是問題; '2012-08-01'是一個整數計算,它應該是'2012-08-01'' - 根據你之前的其他答案。 – MatBailie 2012-08-03 11:01:45

相關問題