Saturday, December 13, 2008

How to get the Second Sunday of march/ First Sunday Of November in sql server for implementing Daylight saving time.

How to get the Second Sunday of march/First Sunday Of November in sql server for implementing Daylight saving time.?

Daylight saving time is the convention of advancing clocks so that afternoons have more daylight and mornings have less. Typically clocks are adjusted forward one hour near the start of spring and are adjusted backward in autumn.
In USA, from 2007, daylight saving time falls between ”first Sunday of November” to GetSecondSundayOfMarch.
In one of my project, i have to implement the daylight saving time and for this I have to get the second Sunday of march and first Sunday of November .In order to get on which date, “Second Sunday of march” and ”first Sunday of November” come, i created following functions in sql Server
GetSecondSundayOfMarch
CREATE function [dbo].[GetSecondSundayOfMarch](@year int)
returns datetime
as
begin
declare @dateTime datetime
set @dateTime = cast('3/8/' + cast(@year as varchar(4)) as datetime)
set @dateTime = case when datepart(dw, @dateTime) = 1
then @dateTime
else dateadd(dd, 8 - datepart(dw, @dateTime), @dateTime) end
return @dateTime
end

and first Sunday of November

CREATE function [dbo].[GetFirstSundayOfNovember](@year int)
returns datetime
as
begin
declare @dateTime datetime
set @dateTime = cast('11/1/' + cast(@year as varchar(4)) as datetime)
set @dateTime = case when datepart(dw, @dateTime) = 1
then @dateTime
else dateadd(dd, 8 - datepart(dw, @dateTime), @dateTime) end
return @dateTime
end




Thanks
Arvind - Ramp India.

No comments: