欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

怎么得到这种表

更新时间: 2014-01-05 02:21:28 责任编辑: Author_N1

 

如何得到这种表?
在存储过程里面 有两个参数 一个开始日期,一个截至日期 
我想得到一个表,这个表只有两列 一列自增,一列就是日期

比如 

开始日期为2009-08-01 截至日期为2009-08-05 那么记录就为
id 日期 
1 2009-08-01
2 2009-08-02
3 2009-08-03
4 2009-08-04
5 2009-08-05

越简单越好 谢谢先!

--参考方法--
http://topic.csdn.net/u/20090906/17/a91cd31e-abf7-4190-8486-c5491aa63c71.html?seed=1380177511&r=59598572#r_59598572
--参考方法--
==
--参考方法--
可以参考一楼的。
--参考方法--
探讨
http://topic.csdn.net/u/20090906/17/a91cd31e-abf7-4190-8486-c5491aa63c71.html?seed=1380177511&r=59598572#r_59598572

--参考方法--
SQL code
if(object_id('p_test')>0)
drop proc p_test
go
create proc p_test  (@date1 datetime,@date2 datetime)
as
begin
    
    select number=number+1,convert(varchar(10),@date1+number,120)
         from master..spt_values where type='p' and @date1+number<=@date2
end 
go
exec p_test '2009-01-01','2009-01-10'

/*
1    2009-01-01
2    2009-01-02
3    2009-01-03
4    2009-01-04
5    2009-01-05
6    2009-01-06
7    2009-01-07
8    2009-01-08
9    2009-01-09
10    2009-01-10
*/

--参考方法--
SQL code

declare @date datetime
set @date='2009-02-05'

select [day]=convert(varchar(6),@date,112)++right('0'+ltrim(number),2)
from master..spt_values
where type='p'
  and number >=1 
  and number <= datediff(dd,@date,dateadd(month,1,@date))

--参考方法--
探讨
SQL codeif(object_id('p_test')>0)dropproc p_testgocreateproc p_test (@date1datetime,@date2datetime)asbeginselectnumber=number+1,convert(varchar(10),@date1+number,120)from master..spt_valueswhere type='p'and@date1+number<=@date2endgoexec p_test'2009-01-01','2009-01-10'/*
1 2009-01-01
2 2009-01-02
3 2009-01-03
4 2009-01-04
5 2009-01-05
6 2009-01-06
7 2009-01-07
8 2009-01-08
9 2009-01-09
10 2009-01-10*/

--参考方法--
SQL code
declare @begin datetime,@end datetime

select @begin='2009-08-01',@end='2009-08-05' 

select id=number+1,日期=dateadd(dd,number,@begin) from master..spt_values
where type='p' and number between 0 and datediff(dd,@begin,@end)

/*
id          日期                                                     
----------- ------------------------------------------------------ 
1           2009-08-01 00:00:00.000
2           2009-08-02 00:00:00.000
3           2009-08-03 00:00:00.000
4           2009-08-04 00:00:00.000
5           2009-08-05 00:00:00.000

(所影响的行数为 5 行)

*/

--参考方法--
SQL code
declare @begin datetime,@end datetime

select @begin='2009-08-01',@end='2009-08-05' 

select id=number+1,日期=convert(varchar(10),dateadd(dd,number,@begin),120) from master..spt_values
where type='p' and number between 0 and datediff(dd,@begin,@end)

/*
id          日期         
----------- ---------- 
1           2009-08-01
2           2009-08-02
3           2009-08-03
4           2009-08-04
5           2009-08-05

(所影响的行数为 5 行)

*/

--参考方法--
这个例子很多,我蹭分了
--参考方法--
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:21:28
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/8842/
本文WWW.DOC100.NET DOC100.NET版权所有。