首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

然后构造出 一个日期段内的 周六,周日 的 日期解决方案

2012-03-18 
然后构造出 一个日期段内的 周六,周日 的 日期构造出 一个日期段内的 周六,周日 的 日期例如 构造出从2010

然后构造出 一个日期段内的 周六,周日 的 日期
构造出 一个日期段内的 周六,周日 的 日期

例如 构造出 从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' 

热点排行