使用蜂巢计算出生日期的年龄

时间:2014-04-30 09:13:28

标签: hadoop hive

我想根据给定的用户出生日期计算年龄。 我该怎么做 ?蜂巢中有没有特定的命令? 找不到太多东西。我尝试使用DATEDIFF,但没有得到正确的输出,只给出了空

SELECT FLOOR(DATEDIFF(DAY, user_dob, unix_timestamp()) / 365.25)

2 个答案:

答案 0 :(得分:4)

试试这个:

select 
   floor(datediff(to_date(from_unixtime(unix_timestamp())), 
   to_date(cust_brth_day)) / 365.25) 
from some_table;

答案 1 :(得分:0)

当年减去出生年
如果他们的出生月份大于当月-1,则加上
如果他们的出生月份等于当前月份 并且月份的出生日期大于月份的当前日期-1

select birth_date
, current_year
, (year(current_date) - year(birth_date) 
   +case when month(birth_date) > month(current_date) then -1
         when month(birth_date) = month(current_date) and day(birth_date) > day(current_date) then -1
         else 0 
     end) as age
from person