Hive SQL 通过生日精确计算年龄

SELECT IF(DATEDIFF(CURRENT_DATE, CONCAT(SUBSTR(CURRENT_DATE, 0, 4), SUBSTR('2015-03-04', 5, 7))) >= 0,
          DATEDIFF(CURRENT_DATE, '2015-03-04') / 365,
          DATEDIFF(CURRENT_DATE, '2015-03-04') / 365 - 1);

select if(datediff(CURRENT_DATE, CONCAT(substr(CURRENT_DATE, 0, 4), substr('2015-03-04', 5, 7))) >= 0,
          (substr(CURRENT_DATE, 0, 4) - substr('2015-03-04', 0, 4)),
          (substr(CURRENT_DATE, 0, 4) - substr('2015-03-04', 0, 4) - 1));


SELECT FLOOR((CAST(CONCAT(SUBSTR(CURRENT_DATE, 0, 4), SUBSTR(CURRENT_DATE, 6, 2), SUBSTR(CURRENT_DATE, 9)) AS INT) -
              CAST(CONCAT(SUBSTR('2015-03-04', 0, 4), SUBSTR('2015-03-04', 6, 2), SUBSTR('2015-03-04', 9)) AS INT)) /
             10000);

MySQL 通过生日精确计算年龄

SELECT YEAR(CURRENT_DATE()) - YEAR(birthday) - (DAYOFYEAR(CURRENT_DATE()) < DAYOFYEAR(birthday)) AS age
FROM table_name;

参考

https://blog.csdn.net/XiangFei_Niu/article/details/88262998

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐