How to calculate Easter date

Date functions output

Here is the sample Date datatype with int datatype

  DECLARE @Date DATE     , @c INT     , @n INT     , @i INT     , @k INT     , @j INT
    , @l INT    , @m INT    , @d INT	,@Year INT =2025

    SET @n = @Year - 19 * (@Year / 19)
    SET @c = @Year / 100
    SET @k = (@c - 17) / 25
    SET @i = @c - @c / 4 - (@c - @k) / 3 + 19 * @n + 15
    SET @i = @i - 30 * (@i / 30)
    SET @i = @i - (@i / 28) * (1 - (@i / 28) * (29 / (@i + 1)) * ((21 - @n) / 11))
    SET @j = @Year + @Year / 4 + @i + 2 - @c + @c / 4
    SET @j = @j - 7 * (@j / 7)
    SET @l = @i - @j
    SET @m = 3 + (@l + 40) / 44
    SET @d = @l + 28 - 31 * (@m / 4)
    select EsterDate = CAST(@Year AS VARCHAR) + '-' + CAST(@m AS VARCHAR) + '-' + CAST(@d AS VARCHAR)
SELECT DATENAME(year, GETDATE()) as Year,
       DATENAME(week, GETDATE()) as Week,
       DATENAME(dayofyear, GETDATE()) as DayOfYear,
       DATENAME(month, GETDATE()) as Month,
       DATENAME(day, GETDATE()) as Day,
       DATENAME(weekday, GETDATE()) as WEEKDAY
-- higher precision functions 
SELECT SYSDATETIME()       AS 'DateAndTime'        -- return datetime2(7)       
	,SYSDATETIMEOFFSET() AS 'DateAndTime+Offset' -- datetimeoffset(7)
	,SYSUTCDATETIME()    AS 'DateAndTimeInUtc';   -- returns datetime2(7)
-- lesser precision functions - returns datetime
SELECT CURRENT_TIMESTAMP AS 'DateAndTime' -- note: no parentheses   
	,GETDATE()         AS 'DateAndTime'   
	,GETUTCDATE()      AS 'DateAndTimeUtc'; 
Use of date function in SQL server

Reference:

Spread the love

Leave a Comment