问题描述
小弟正在做一个质量考评系统,遇到了个时间段上的算法的问题,问题如下:当用户登入进去后,得到当时的日期,现在自定义每月X号进行统计,如果当前日期小于X号,得到上个月X号到当前日期的时间段,如果大于X号,得到当前月X号+1到当前时间的时间段
解决方案
解决方案二:
我感觉只要利用函数提取出年,月,日进行比较就行,你看一下有你需要的吗:http://blog.csdn.net/hhxxcj/archive/2009/01/15/3785913.aspx
解决方案三:
楼上的,但是基本函数,我知道,我是问有没的现成的算法,这算法需求应该很普遍
解决方案四:
大大们帮帮我撒
解决方案五:
引用楼主linran625的帖子:
小弟正在做一个质量考评系统,遇到了个时间段上的算法的问题,问题如下:当用户登入进去后,得到当时的日期,现在自定义每月X号进行统计,如果当前日期小于X号,得到上个月X号到当前日期的时间段,如果大于X号,得到当前月X号+1到当前时间的时间段
好像有个whencase的语句,再结合selectdatepart("d",getdate())<20可以解决,我忘了怎么写了,
解决方案六:
为什么是小于20,,,
解决方案七:
有没的那个大哥回答小弟一下啊,有没的现成的函数,貌似这是很常见的功能啊,
解决方案八:
这是个体力活呵!!要判断的东西太多,跨年,跨月等等!!下面给一个不跨年也不跨月的算法,供楼主参考:DateTimedt=DateTime.Today;DateTimedt1;intX=15;if(dt.Day>X)dt1=Convert.ToDateTime((dt.Year.ToString()+"-"+(dt.Month-1).ToString()+"-"+X.ToString()));elsedt1=Convert.ToDateTime((dt.Year.ToString()+"-"+dt.Month.ToString()+"-"+(X+1).ToString()));Response.Write(dt1);
解决方案九:
不跨年,不跨月。。。有什么用阿。难道没人在以前的项目中解决这问题吗
解决方案十:
还是没的人回答我啊??
解决方案十一:
现成的函数?好象这都可以自己写的吧?
解决方案十二:
引用8楼linran625的回复:
不跨年,不跨月。。。有什么用阿。难道没人在以前的项目中解决这问题吗
可能跨年,一定跨月,这没有什么现成的函数,需要自己做些比较,其实是简单的,你已经知道了所求的这个时间段的开始日期或结束日期,要求另一个而已。只要比较一次就知道是要取上月X号还是取当月X+1号
解决方案十三:
up
解决方案十四:
根据日期判断一下范围,直接做日期的比较就好了吧~
解决方案十五:
比较一下就可以得出要取上月号还是取当月号
解决方案:
select*fromT1wherecasewhendatepart("d",getdate())<20thenmydateelsedatepart("d",mydate)+1endmydate是字段
解决方案:
直接在sql传时间条件
解决方案:
估计没的人能回答了