0

我试图在下面的 where 子句中给出日期范围.. 但是它没有给出正确的 o/p

  declare @StartDate DATETIME,  @EndDate DATETIME   
  set @StartDate='9/01/2011'
  set @EndDate='1/30/2012'
   Select * from mytable Where  MONTH(WT.ToDate) >= MONTH(@StartDate) AND MONTH(WT.ToDate) <=MONTH(@Enddate)
   AND YEAR(WT.ToDate)>= YEAR(@StartDate) AND YEAR(WT.ToDate) <=YEAR(@Enddate)

请帮忙

4

2 回答 2

0

WT.ToDate是什么,WT指的是什么?

它应该是。

  declare @StartDate DATETIME,  @EndDate DATETIME   
  set @StartDate='9/01/2011'
  set @EndDate='1/30/2012'
   Select * from mytable as WT Where MONTH(WT.ToDate) >= MONTH(@StartDate) AND MONTH(WT.ToDate) <=MONTH(@Enddate)
   AND YEAR(WT.ToDate)>= YEAR(@StartDate) AND YEAR(WT.ToDate) <=YEAR(@Enddate)
于 2013-03-08T10:37:31.337 回答
0

首先,请注意我已经更改了您指定日期的格式,以避免任何误解的风险(现在是 yyyyMMdd)。

其次,尝试这样的子句:

declare @StartDate DATETIME,  @EndDate DATETIME   
set @StartDate='20110901'
set @EndDate='20120130'

Select * 
from mytable 
Where  WT.ToDate >= @StartDate AND WT.ToDate < @EndDate

请注意,这不会返回 2012 年 1 月 30 日的行,因此只需适当调整您的 @EndDate

于 2013-03-08T10:37:42.837 回答