dsp15140275697 2016-06-02 14:48
浏览 24
已采纳

PHP MYSQL计算年和日

Does anyone know how i can calculate my age and remaining days with MySQL, taking into account of leap years?

I found examples which can calculate the total number of days.

But i want a result like:

22 years, 134 days,
23 years, 361 days    
24 years, 11 days

For now i got this:

SELECT
  name,
  dob,
  TIMESTAMPDIFF( YEAR, dob, now() ) as _year,
  TIMESTAMPDIFF( MONTH, dob, now() ) % 12 as _month,
  FLOOR( TIMESTAMPDIFF( DAY, dob, now() ) % 30.4375 ) as _day
FROM 
  client

But this doesn't work and % 30.4375 is not a solution for leap years.

  • 写回答

2条回答 默认 最新

  • douben7493 2016-06-02 15:28
    关注

    How about this :

    SELECT 
      name,
      dob,
      TIMESTAMPDIFF(YEAR, dob, now()) years, 
      TIMESTAMPDIFF(DAY, TIMESTAMPADD(YEAR, TIMESTAMPDIFF(YEAR, dob, now()), dob), now()) days
    FROM
       client;
    

    First part gets the years, second part adds years to date of birth to get last birthday & then gets number of days since then.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置