select name,birthday,
if(cur>today, cur,next) as birth_day
from (
select name,birthday,today,
date_add(cur, interval if (day(birthday)=29
&& day(cur)=28,1,0) day) as cur,
date_add(next,interval if(day(birthday)=29
&& day(cur)=28,1,0) day) as next
from (
select name,birthday,today,
date_add(birthday,interval diff year) as cur,
date_add(birthday,interval diff+1 year) as next
from (
select concat(last_name,' ',first_name) as name,
birth_date as birthday,
(year(now()) - year(birth_date)) as diff,
now() as today
from same ) as a
) as b
) as c;请解释一下第二行命令if条件判断函数的,其中的cur,today,next是什么?
望指教~~
if(cur>today, cur,next) as birth_day
from (
select name,birthday,today,
date_add(cur, interval if (day(birthday)=29
&& day(cur)=28,1,0) day) as cur,
date_add(next,interval if(day(birthday)=29
&& day(cur)=28,1,0) day) as next
from (
select name,birthday,today,
date_add(birthday,interval diff year) as cur,
date_add(birthday,interval diff+1 year) as next
from (
select concat(last_name,' ',first_name) as name,
birth_date as birthday,
(year(now()) - year(birth_date)) as diff,
now() as today
from same ) as a
) as b
) as c;请解释一下第二行命令if条件判断函数的,其中的cur,today,next是什么?
望指教~~
birthday,
IF(cur > today, cur, next) 如果cur > today,则显示cur列,否则显示next列——远离 深圳市前海博纳斯科技有限公司 这家毫无信用诈骗工资的垃圾公司!
DATE_ADD(cur, INTERVAL IF (DAY(birthday)=29 && DAY(cur)=28,1,0) DAY) AS cur,
DATE_ADD(NEXT,INTERVAL IF(DAY(birthday)=29 && DAY(cur)=28,1,0) DAY) AS NEXT粗看,应该是计算下个生日的日期吧,我觉得没必要这么复杂