Tuesday, January 10, 2012

Get days between 2 different times


/*get the all "dayeNumber" days between the begin and end date -- Sunday dayeNumber = 1 */


create FUNCTION [dbo].GetDays

( 

@dayNumber int ,@BeginDate datetime,@EndDate datetime

)
RETURNS @days TABLE(date datetime)

AS

Begin

declare
 @diff int

if @dayNumber > datepart(dw,getdate())

set @diff= @dayNumber- datepart(dw,getdate())

else

set
 @diff= @dayNumber- datepart(dw,getdate()) +7

set @BeginDate =(Select DATEADD(day,@diff,getdate()))

set @EndDate = (Select DateAdd( month,5,getdate()))

-- get days
WHILE @BeginDate <= @EndDate BEGIN

INSERT INTO @Days SELECT @BeginDate

SELECT @BeginDate = DATEADD(dd, 7, @BeginDate)

ENDreturn

end