在我的查询中指定日期不会产生任何结果/记录

时间:2012-08-03 10:50:29

标签: sql sql-server

我想针对两个日期查询我的表并检索其中的记录。

我声明我的变量是这样的;

DECLARE @StartDate datetime;
DECLARE @EndDate datetime;

并设置我的变量;

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

我的WHERE子句;

WHERE Date BETWEEN  @StartDate AND @EndDate

执行查询时没有显示记录,我的错误是什么?我已经尝试在日期中添加时间,但这也不起作用。

3 个答案:

答案 0 :(得分: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日的任何数据,或8月2日标记为午夜的任何数据。它不会返回任何标记为例如:8月2日上午9点

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

尝试

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