Useful DateTime Functions





4.00/5 (1 vote)
IF OBJECT_ID (N'dbo.GetIntervalStartDate', N'FN') IS NOT NULL DROP FUNCTION dbo.GetIntervalStartDate;GO--gets first day of interval date belongs toCREATE FUNCTION dbo.GetIntervalStartDate (@Date datetime,@IntervalType int = 0--0 - DAY, 1 - WEEK (Mon to Sun), 2 - MONTH, 3 -...
IF OBJECT_ID (N'dbo.GetIntervalStartDate', N'FN') IS NOT NULL
DROP FUNCTION dbo.GetIntervalStartDate;
GO
--gets first day of interval date belongs to
CREATE FUNCTION dbo.GetIntervalStartDate (
@Date datetime
,@IntervalType int = 0
--0 - DAY, 1 - WEEK (Mon to Sun), 2 - MONTH, 3 - FYQUARTER, 4 - FYQUARTER
)
RETURNS datetime2
AS
BEGIN
DECLARE @IntervalStartDate datetime;
SELECT @IntervalStartDate =
(case @IntervalType
when 0 then DATEADD(dd,DATEDIFF(dd,0,@Date),0) --First Day of Current Day
when 1 then DATEADD(wk,DATEDIFF(wk,0,@Date),0) --First Day of Current Week
when 2 then DATEADD(mm,DATEDIFF(mm,0,@Date),0) --First Day of Current Month'
when 3 then DATEADD(qq,DATEDIFF(qq,0,@Date),0) --First Day of Current Quarter
when 4 then DATEADD(qq,DATEDIFF(qq,0,@Date),0) --First Day of Current Quarter
else NULL
end);
RETURN(@IntervalStartDate);
END;
GO