当年的苦-跨年sql

版权声明: https://blog.csdn.net/weixin_41722928/article/details/85071837

SELECT a.id, a.start_time, a.end_time,a.limit_power,DATEDIFF(a.end_time, a.start_time) as diffs,
                    CASE WHEN DATEDIFF(a.end_time, a.start_time) >= 365 THEN 365
                            WHEN  DATEDIFF( a.end_time,start_time) =0 then 0
                            ELSE DATEDIFF(a.end_time, a.start_time)
                            END AS actdays 
                    FROM t_limit_power a
            WHERE 2018 BETWEEN   DATE_FORMAT(a.start_time, '%Y') and DATE_FORMAT(a.end_time, '%Y')  
and DATE_FORMAT(a.start_time, '%Y')!=2018 and DATE_FORMAT(a.end_time, '%Y') !=2018 
union all
SELECT a.id, a.start_time, a.end_time,a.limit_power,DATEDIFF(a.end_time, a.start_time) as diffs,
                    CASE WHEN DATEDIFF(a.end_time, a.start_time) >= 365 THEN 365
                            WHEN  DATEDIFF( a.end_time,start_time) =0 then 0
                            ELSE DATEDIFF(a.end_time, a.start_time)
                            END AS actdays 
                    FROM t_limit_power a
            WHERE   DATE_FORMAT(a.start_time, '%Y')=2018 and DATE_FORMAT(a.end_time, '%Y') =2018 
union all
SELECT a.id, a.start_time, a.end_time,a.limit_power,DATEDIFF(a.end_time, a.start_time) as diffs, 
                          DATEDIFF( a.end_time,'2018-1-1') AS actdays 
                    FROM t_limit_power a
            WHERE   DATE_FORMAT(a.start_time, '%Y')!=2018 and DATE_FORMAT(a.end_time, '%Y') =2018 
union all
SELECT a.id, a.start_time, a.end_time,a.limit_power,DATEDIFF(a.end_time, a.start_time) as diffs,
                    CASE WHEN DATEDIFF(a.end_time, a.start_time) >= 365 THEN 365
                            WHEN  0<DATEDIFF( a.end_time,start_time) <365 then DATEDIFF(  '2018-12-31',a.start_time)
                            ELSE DATEDIFF(a.end_time, a.start_time)
                            END AS actdays 
                    FROM t_limit_power a
            WHERE   DATE_FORMAT(a.start_time, '%Y')=2018 and DATE_FORMAT(a.end_time, '%Y')!=2018    
 

猜你喜欢

转载自blog.csdn.net/weixin_41722928/article/details/85071837