首页 > 数据库技术 > 详细

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

时间:2015-12-02 20:49:03      阅读:338      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!