做一个财务统计,每个月的五号开始到下个月的五号截至,统计出一个月的支出情况,然后做成报表的形式,
遇到的问题如下:
        1、我要统计每个月的SQL语句该怎么写呢,总不能写个死的吧,不能从datetim控件中自己去填写时间然后找吧!
        2、如果统计的话,五号那天是节假日或者周末那么。    表述不是很流畅希望各位大大们给给意见支支招!!!谢谢

解决方案 »

  1.   

    可以根据时间查询,也可以做个Tab 按月份 季度 年份分开显示
    date>=getdate() and date<dateadd(day,30,convert(varchar(10),getdate(),120)) 从当前时间开始到前30天之间,这个是简单的,月份有30天31天等 还要判断。周末的问题也需要判断 总之都需要判断 考虑各种情况 
      

  2.   

    1、你既然要统计,最好提供一个统计的时间段,比如年份,月份2个下拉框,提供选择。默认是当前年份和月份
    ,一个按钮从数据库取数据绑定。2、你管它5号那天是否节假日,你插入数据的时候,是节假日的话,就插一条空数据就是了。比如你年份选择 2011年 月份5月那么SQL语句的时间你就是 对2011-04-05 至 2011-05-05时间段得数据进行统计。
      

  3.   

    这样
    把时间段空控制在每个月月初,和每个月最后一天的23点59分select   * from  table1 where  time 
    between 
    ( SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) and 
     (SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))  )其中 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 是每个月月初第一天 比如这个月
    2011-05-01 00:00:00.000SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))  是每个月最后一天
    这两个函数 是随着月份不同自动变化的
      

  4.   


       /// <summary>
            /// 获取双休日单元格颜色
            /// </summary>
            protected string GetColorOfWeek(int year, int moth, int day)
            {
                string colors = "#FFFFFF";
                DateTime dt = new DateTime(year, moth, day);
                if (dt.DayOfWeek.ToString() == "Saturday" || dt.DayOfWeek.ToString() == "Sunday")
                {
                    colors = "#333399";
                }
                return colors;
            }这个方法可以获取到双休日
    把颜色改成返回day就可以了
      

  5.   

    dateTime有很多关于判断月份,年份的计算
      

  6.   

    直接2个文本框,下个MY97控件,2个文本框确定时间段
    sql : select * from 表 where 1 = 1 and between datetime >= '"+第一个文本框.text+"' and datetime <= '"+第二个文本框.text+"'
    如果第一个不选就默认第二个截止,
    第二个不选就默认第一个之后、
    二个都不选就默认全部,。
    在后台判断..