目录
源数据表
关于闰年,有如下说法:四年一闰,百年不闰。四百年再闰,千年不闰。四千年再闰.万年不闰。五十万年再闰。文字太多,很不容易记忆。用SQL方便地查询今年是平年还是闰年。
解决方案
SELECT IIF(DAY(DATESERIAL(YEAR(DATE()),3,1)-1)=29,'闰年','平年') AS 平年还是闰年
DATESERIAL函数的使用
平年与闰年的区别在于如下两点:
1.平年中的二月份是28天;闰年中的二月份是29天。
2.平年的总天数是365天;闰年的总天数是366天。
本例通过判断今年二月份的天数返回今年是平年或闰年,分步解析如下:
YEAR(DATE()),返回今天所在年的年份序列值。
DATESERIAL(YEAR(DATE()),3,1),得到今年3月1日的日期值。
DATESERIAL(YEAR(DATE()),3,1)-1,得到今年3月1日前一天的日期值。如果是平年,则是2月28日,如果是闰年,则是2月29日。
DAY(DATESERIAL(YEAR(DATE()),3,1)-1)