select decode(
              sign(dif_days),
              1 ,to_char(sysdate,'yyyy')-to_char(datetime,'yyyy')  , --當前日期大於生日-1天
              -1,to_char(sysdate,'yyyy')-to_char(datetime,'yyyy')-1, --當前日期小於生日-1天
              0 ,to_char(sysdate,'yyyy')-to_char(datetime,'yyyy')    --當前日期等於生日-1天
             ) year,      --幾歲
       abs(dif_days) days --幾天 
  from (
        select date_time,
               trunc(sysdate)-to_date(to_char(sysdate,'yyyy')||to_char(datetime,'mmdd'),'yyyymmdd')+1 dif_days
          from your_table
       )上面的trunc(sysdate)-to_date(to_char(sysdate,'yyyy')||to_char(datetime,'mmdd'),'yyyymmdd')+1,为什么加1