码迷,mamicode.com
首页 > 数据库 > 详细

MySQL当中的闰月最后一天的计算问题

时间:2015-12-02 20:51:39      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:

在日期的计算当中会出现一个奇怪的问题:

如果当前日期是闰年的2月29日,那么对当前的日期+ N 年,那么相应的日期变为2月28日。但是这不符合我们的常识,按照常识,当只有28天的时候,时间应该顺延一天,变为3月1日。

例如下面的SQL带么用来计算,今年的生日日期:

select name,birthday,NOW(),
DATE_ADD(birthday1, INTERVAL IF(DAY(birthday)=29 && DAY(birthday1)=28,1,0) DAY) as birthday2
from(
    select name,birthday,DATE_ADD(birthday,INTERVAL diff YEAR) as birthday1
    from(
        select name,birthday,(YEAR(NOW())-YEAR(birthday)) as diff
        from user
    )
)

其中第一层循环,是要计算当前日期和出生日期相差的年份。

第二层循环,初步计算几年的生日日期。

第三层循环,进一步修正出生日期。

 

MySQL当中的闰月最后一天的计算问题

标签:

原文地址:http://www.cnblogs.com/deepblueme/p/5014028.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!