如何使用月份和年份来迭代两个日期的数据

时间:2015-01-29 08:37:57

标签: c# sql-server

我有一个带有一些字段的表格

EmpCode=a,OffID=1, FromDate=2015-01-01, ToDate='2015-01-10'
EmpCode=a,OffID=2, FromDate=2015-01-11, ToDate='2015-01-20'
EmpCode=a,OffID=1, FromDate=2015-01-21, ToDate='2015-01-29'
EmpCode=a,OffID=1, FromDate=2015-01-30, ToDate='2015-02-02'

我有2个下拉列表来选择月份和年份。我想要在月份= 1和年份= 2015年的offID计数。我怎么才能得到它。查看最后一个OffID todate是2015-02-01

1 个答案:

答案 0 :(得分:1)

我假设您每个月都需要offIDoffID1st todate属于fromdate个月年度相同你可以做这样的事情

 Select count(offiD) 
 FROM  tablename 
 WHERE (MONTH(todate) = 1 AND MONTH(fromDate) =1 ) 
 AND (YEAR(fromDate) = 2015 AND YEAR(todate) = 2015)

如果您只想过滤一个日期,则只需删除第二个日期过滤器。


<强>更新

如果您要检查hardcoded值,则需要在查询中添加单引号

您的查询

  Select count(offiD) 
  FROM 
      Offdayallocation 
  WHERE  
    (MONTH(2015-01-10) = 1 AND MONTH(2015-01-01) =1 ) 
    AND (YEAR(2015-01-01)= 2015 AND YEAR(2015-01-10) = 2015) 
    and EmpCode='a'

改变这样的条件,

   (MONTH('2015-01-10') = 1 AND MONTH('2015-01-01') = 1 ) 
    AND (YEAR('2015-01-01')= 2015 AND YEAR('2015-01-10') = 2015)
    and EmpCode='a'

这可以解决您的问题。