检查闰年

t-c*_*.dk 12 t-sql math

如何检查一年是否是闰年?

我有这个代码:

declare @year int
set @year = 1968

SELECT CASE WHEN @YEAR = <LEAPYEAR> THEN 'LEAP YEAR' ELSE 'NORMAL YEAR' END
Run Code Online (Sandbox Code Playgroud)

预期结果:

LEAP YEAR
Run Code Online (Sandbox Code Playgroud)

gbn*_*gbn 40

检查2月29日:

CASE WHEN ISDATE(CAST(@YEAR AS char(4)) + '0229') = 1 THEN 'LEAP YEAR' ELSE 'NORMAL YEAR' END
Run Code Online (Sandbox Code Playgroud)

或使用以下规则

CASE WHEN (@YEAR % 4 = 0 AND @YEAR % 100 <> 0) OR @YEAR % 400 = 0 THEN 'LEAP YEAR'...
Run Code Online (Sandbox Code Playgroud)


Kev*_*ice 10

最有效的闰年测试:

CASE WHEN @YEAR & 3 = 0 AND (@YEAR % 25 <> 0 OR @YEAR & 15 = 0) THEN ...
Run Code Online (Sandbox Code Playgroud)

改编自:http : //stackoverflow.com/a/11595914/3466415