По григорианскому календарю год считается високосным если он кратен 4, но при этом не кратен 100, либо кратен 400. С учетом этого можем написать функцию для определения “високосности” года.
create function [dbo].[isLeapYear] (@date date) returns bit as begin return (case when year(@date) % 4 = 0 and year(@date) % 100 != 0 then 1 when year(@date) % 400 = 0 then 1 else 0 end) end
Функция может принимать любую дату в качестве аргумента и возвращает единицу если год високосный, в противном случае – 0: