获取范围之间的日期 [英] Get Between dates with in the range
本文介绍了获取范围之间的日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Name EnterDate todate
Shireeshab 12/15/2011 12/16/2011
anila 12/16/2011 12/16/2011
ravichand 12/12/2011 12/13/2011
manoj 1/4/2013 3/4/2013
raju 12/15/2011 12/16/2011
Srinivas 1/6/2012 1/6/2012
我有这样的数据。现在我想从enterdate和todate获取日期
例如
for manoj输入日期2013年1月4日,todate是3 / 4/2013所以我希望在一栏中获得1/4 / 2013,2 / 4 / 2013,3 / 4/2013
就像所有名字一样。
期望的输出是
I have the data like this. now i want to get beetween dates from enterdate and todate
for example
for manoj enter date 1/4/2013 and todate is 3/4/2013 so i want to get 1/4/2013,2/4/2013,3/4/2013 in one column
like that all the names.
Desired output is
12/15/2011
12/16/2011
12/16/2011
12/12/2011
12/13/2011
1/4/2013
2/4/2013
3/4/2013
推荐答案
试试这个:
Try this:
create procedure EnumerateDates
@fromdate datetime,
@todate datetime
as
begin
with mycte as
(
select @fromdate DateValue
union all
select DateValue + 1
from mycte
where DateValue + 1 <= @todate
)
select DateValue
from mycte
OPTION (MAXRECURSION 0)
end
用法:
Usage:
exec EnumerateDates '2013.01.01','2013.01.10'
您好prakash.chakrala,
你可以试试这个,
Hi prakash.chakrala,
you can try this,
create FUNCTION Dates(@fromdate datetime,@todate datetime)
returns varchar(1000)
as
begin
DECLARE @Count INT
DECLARE @Len INT
Declare @dates varchar(max)
set @count=1;
set @Len= DATEDIFF(Day,@fromdate,@todate)
set @dates=CONVERT(Varchar,@fromdate,105)
while @Count<=@Len
begin
set @fromdate=@fromdate+1;
set @dates=@dates+'''''',''+CONVERT(varchar,@fromdate,105);
set @Count=@Count+1;
end
return @dates
end
select Name,Dates(EnterDate,ToDate)
from table1 (nolock)
where name='manoj'
希望它会帮助你... < br $>
Happy Coding
Hope it will help you...
Happy Coding
这篇关于获取范围之间的日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文