我有一个SQL Server表,其中有一个名为statusdate
的列,它是一个ODBC日期/时间
我需要创建一个SELECT query WHERE statusdate
可以返回2个日期(开始日期和结束日期)之间的范围。我被告知在我的DATEDIFF
声明中使用WHERE
。这是正确的,语法是什么?
答案 0 :(得分:3)
如果您使用的是SQL Server 2008/2012,并且可以使用date
数据类型。
select *
from YourTable
where statusdate between @StartDate and @EndDate
如果您使用datetime
,我建议您使用>=
和<
,以确保无论时间部分如何都能获得所有值。
select *
from YourTable
where statusdate >= @StartDate and
statusdate < dateadd(day, 1, @EndDate)
更新
我被告知在我的WHERE语句中使用DATEDIFF。这是正确的
不,你不应该使用datediff
。
什么是语法?
这里......但不要使用它。
select *
from YourTable
where datediff(day, statusdate, @StartDate) = 0 and
datediff(day, statusdate, @EndDate) = 0
答案 1 :(得分:0)
你为什么不做BETWEEN
?:
SELECT *
FROM YourTable
WHERE statusdate BETWEEN StartDate AND EndDate