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

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..net/XiangFei_Niu/article/details/88262998

经验分享 程序员 微信小程序 职场和发展