美文网首页MySQL
MySQL 计算今年是否为闰年

MySQL 计算今年是否为闰年

作者: 只是甲 | 来源:发表于2020-10-30 11:20 被阅读0次

备注:测试数据库版本为MySQL 8.0

一.问题:

求今年是否为闰年

二.解决方案

根据2月份最后一天来判断

select  day(
        last_day(
        date_add(
        date_add(
        date_add(current_date,
                 interval - dayofyear(current_date) day),
                 interval 1 day),
                 interval 1 month))) dy;

测试记录

mysql> select  day(
    ->         last_day(
    ->         date_add(
    ->         date_add(
    ->         date_add(current_date,
    ->                  interval - dayofyear(current_date) day),
    ->                  interval 1 day),
    ->                  interval 1 month))) dy;
+------+
| dy   |
+------+
|   29 |
+------+
1 row in set (0.01 sec)

这样看起来有点麻烦,分解开
dayofyear(current_date) -- 求出今天是本年的第多少天
date_add(date, interval - n day) -- 今天的天数减去截止当前是今年多少天 得出上年的12月31日
date_add(date, interval + 1 day) -- 得出今年1月的第1天
date_add(date, interval + 1 month) -- 得出今年2月的第一天
last_day(date) -- 得出2月份最后一天
day(date) --求出日

测试记录:

mysql> select dayofyear(current_date);
+-------------------------+
| dayofyear(current_date) |
+-------------------------+
|                     289 |
+-------------------------+
1 row in set (0.00 sec)

mysql> select date_add(current_date,interval -289 day);
+------------------------------------------+
| date_add(current_date,interval -289 day) |
+------------------------------------------+
| 2019-12-31                               |
+------------------------------------------+
1 row in set (0.00 sec)

mysql>
mysql> select date_add('2019-12-31',interval 1 day);
+---------------------------------------+
| date_add('2019-12-31',interval 1 day) |
+---------------------------------------+
| 2020-01-01                            |
+---------------------------------------+
1 row in set (0.00 sec)

mysql>
mysql> select date_add('2020-01-01',interval 1 month);
+-----------------------------------------+
| date_add('2020-01-01',interval 1 month) |
+-----------------------------------------+
| 2020-02-01                              |
+-----------------------------------------+
1 row in set (0.00 sec)

mysql>
mysql> select last_day('2020-02-01');
+------------------------+
| last_day('2020-02-01') |
+------------------------+
| 2020-02-29             |
+------------------------+
1 row in set (0.00 sec)

mysql> select day('2020-02-29');
+-------------------+
| day('2020-02-29') |
+-------------------+
|                29 |
+-------------------+
1 row in set (0.00 sec)

相关文章

  • MySQL 计算今年是否为闰年

    备注:测试数据库版本为MySQL 8.0 一.问题: 求今年是否为闰年 二.解决方案 根据2月份最后一天来判断 测...

  • 判断是否为闰年

    #include int main() { int year; scanf("%d",&year); if(yea...

  • GO语言学习初级之代码案例01

    @(go语言 黑马)[GO语言] 判断是否为闰年 题目:手动输入一个年份,判断出该年份是否为闰年 代码如下:逻辑思...

  • C语言判断某一年是否为闰年!三种实现程序代码(值得收藏)

    C语言判断某一年是否为闰年的各种实现程序代码 1、公历闰年计算原则(按一回归年365天5小时48分45.5秒) ...

  • Java计算闰年

    满足两种条件的整数可以称为闰年:非整百年份能被4整除的为闰年,整百年份能被400整除的为闰年。 闰年的计算公式 实现过程

  • if语句判断是否为闰年

    package HspLearning; public class IfDay3 {public static v...

  • 杭电ACM-2005

    题目: 代码: 注意:开个数组写入月份,再判断是否为闰年即可当为闰年的时候a[2]=29记得写else a[2]=...

  • python编程练习题

    P5:判断闰年 输入一个年份,判断其是否为闰年。非世纪年(不能被100整除的年份)能被4整除的为闰年。(如2004...

  • Java(第四天)

    1、计算各位数字之和 2、大写字母转换为小写字母 3、Boolean的使用方法 4、判断年份是否为闰年

  • 第 2 章 C#语言基础应用

    实例1:判断年份是否是闰年 年份如果能被400整除就为闰年,或者指定年份可以整除4但不能整除100也为闰年。实现过...

网友评论

    本文标题:MySQL 计算今年是否为闰年

    本文链接:https://www.haomeiwen.com/subject/jgtopktx.html