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 に答える