sql编程题怎么判断是不是闰年

时间:2025-03-04 15:50:38 明星趣事

在SQL中判断一个年份是否为闰年,可以使用以下几种方法:

根据全年总天数判断

```sql

declare @date datetime;

set @date = getdate();

select case

when datediff(day, dateadd(year, datediff(year, 0, @date), 0), dateadd(year, 1 + datediff(year, 0, @date), 0)) = 365 then '平年'

else '闰年'

end

```

根据二月天数判断

```sql

declare @year int;

set @year = year(GETDATE());

select case

when day(dateadd(month, 2, dateadd(year, datediff(year, 0, @date) - 1))) = 28 then '平年'

else '闰年'

end

```

使用CASE语句判断

```sql

declare @year int;

set @year = 2014;

select case

when @year % 4 = 0 and @year % 100 != 0 or @year % 400 = 0 then '是闰年'

else '不是闰年'

end

```

使用PL/SQL函数判断

```sql

create or replace function IS_LEAP_YEAR (nYear in number) return boolean is

begin

if (nYear % 4 = 0 and nYear % 100 != 0) or nYear % 400 = 0 then

return true;

else

return false;

end if;

end;

/

```

使用日期函数判断

```sql

with x (dy, mth) as (

select 28, 2

from dual

)

select case

when day(dateadd(month, 2, dateadd(year, datediff(year, 0, sysdate), 0))) = 28 then '平年'

else '闰年'

end

from x;

```

这些方法都可以用来判断一个年份是否为闰年。你可以根据具体需求和数据库系统的支持情况选择合适的方法。