SQL Server语法,用于在两个给定日期之间返回查询

时间:2012-05-02 17:53:23

标签: sql-server

我有一个SQL Server表,其中有一个名为statusdate的列,它是一个ODBC日期/时间 我需要创建一个SELECT query WHERE statusdate可以返回2个日期(开始日期和结束日期)之间的范围。我被告知在我的DATEDIFF声明中使用WHERE。这是正确的,语法是什么?

2 个答案:

答案 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