-1

我有一个静态表,它使用日期部分的单独字段存储统计信息:


数月
数年数

当我需要特定日期时,这很有效。

我想知道如何处理这个,当我需要一个日期范围时,比如在这个日期到那个日期之间。

非常感谢!

4

2 回答 2

3
   CAST(
    CAST(yearNumber as char(4)) 
    + '-'
    + CAST(monthNumber as char(2)) 
    + '-'
    + CAST(dayNumber as char(2)) 
  as smalldatetime) 
  BETWEEN @StartDate and @EndDate 
于 2013-09-12T18:10:53.127 回答
1

加强zfus评论以查看Charles Bretana 的答案,您可以使用DATEADDWHERE子句中构建日期进行比较:

...
WHERE DATEADD(yy, yearnumber - 1900,  
              DATEADD(m, monthnumber - 1, daynumber - 1))
      BETWEEN @StartDate AND @EndDate;

SQL fiddle

于 2013-09-12T18:35:20.690 回答