Some
exceptions to this rule are required since the duration of a solar year is
slightly less than 365.25 days. Years that are evenly divisible by 100 are not
leap years, unless they are also evenly divisible by 400, in which case they
are leap years. For example, 1600 and 2000 were leap years, but 1700, 1800 and
1900 were not. Similarly, 2100, 2200, 2300, 2500, 2600, 2700, 2900 and 3000
will not be leap years, but 2400 and 2800 will be.”
If you use logic of divide by 4 and remainder is 0 to find leap year,
you will may end up with inaccurate result. The correct way to identify the
year is to figure out the days of February and if the count is 29, the year is
for sure leap year.
DECLARE
@year
INT
SET
@year
=
2012
IF
(((
@year
%
4
=
0
) AND (
@year
%
100
!=
0
)) OR (
@year
%
400
=
0
))
PRINT '
1'
ELSE
print '0'
DECLARE
@Year
INT =
2012
SELECT
ISDATE
(
'2/29/'
+
CAST
(
@Year
AS CHAR
(
4
)))