构造出 一个日期段内的 周六,周日 的 日期
例如 构造出 从2010-10-01 至 2010-10-31 周六,周日 的 日期 ,得到结果是
日期, 星期
2010-10-02 星期六
2010-10-09, 星期六
2010-10-16, 星期六
2010-10-23, 星期六
2010-10-30, 星期六
是构造数据, 不是 from 表
------解决方案--------------------
- SQL code
if object_id('proc_test') is not null drop procedure proc_testgocreate procedure proc_test@starttime datetime,@endtime datetimeasbegin select 日期=convert(varchar(10),date,120),星期=week from ( select date=dateadd(dd,number,@starttime),week=datename(weekday,dateadd(dd,number,@starttime)) from master..spt_values where type='p' and dateadd(dd,number,@starttime)<@endtime )t where week='星期六'endgoexec proc_test '2010-10-01','2010-10-31'/*日期 星期-----------------------2010-10-02 星期六2010-10-09 星期六2010-10-16 星期六2010-10-23 星期六2010-10-30 星期六*/
------解决方案--------------------
- SQL code
我稍改一下if object_id('proc_test') is not null drop procedure proc_testgocreate procedure proc_test@starttime datetime,@endtime datetimeasbegin select 日期=convert(varchar(10),date,120),星期=week from ( select date=dateadd(dd,number,@starttime),week=datename(weekday,dateadd(dd,number,@starttime)) from master..spt_values where type='p' and number between 0 and datediff(day,@starttime,@endtime) )t where week='星期六'endgoexec proc_test '2010-10-01','2010-10-31'