美文网首页
MySQl 计算本年的天数

MySQl 计算本年的天数

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

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

    一.需求

    问题:
    计算当前年的天数。

    二.解决方案

    当前年的天数等于第二年的第一天与当前年的第一天(以日为单位)之差。
    大致步骤如下:
    1.找到当前年的第一天
    2.给该日期加1年(即得到第二年的第一天)。
    3.从第二步的结果中减去当前年第一天

    select d1,
          date_add(d1,interval 1 year) d2, -- 下一年第一天
          datediff(date_add(d1,interval 1 year),d1) days -- 求出两个日期之间间隔的天数
    from 
    (
    -- 求出本年第一天
    select adddate(current_date,-dayofyear(current_date) + 1) d1
    ) tmp;
    

    测试记录

    mysql> select d1,
        ->       date_add(d1,interval 1 year) d2, -- 下一年第一天
        ->       datediff(date_add(d1,interval 1 year),d1) days -- 求出两个日期之间间隔的天数
        -> from
        -> (
        -> -- 求出本年第一天
        -> select adddate(current_date,-dayofyear(current_date) + 1) d1
        -> ) tmp;
    +------------+------------+------+
    | d1         | d2         | days |
    +------------+------------+------+
    | 2020-01-01 | 2021-01-01 |  366 |
    +------------+------------+------+
    1 row in set (0.00 sec)
    
    

    相关文章

      网友评论

          本文标题:MySQl 计算本年的天数

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