hive根据出生日期算年龄-粗略版

这篇博客介绍了如何在Hive中通过SQL语句计算个人的年龄。首先获取当前日期,然后将出生日期从yyyyMMdd格式转换为可计算的日期格式,接着计算日期差并取整以得出年龄。作者认为,尽管这种方法较为直接,但可能不够精确,建议开发自定义Hive函数以实现更精确的年龄计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现在是需要根据表里给出的出生日期算出今年的年龄。写法其实是比较绕的。

首先是需要得到当前的时间

select from_unixtime(unix_timestamp(),'yyyy-MM-dd')
> 2022-04-28

因为给出的表里的出生日志是yyyyMMdd格式的,datediff
只支持日期属性或者yyyyMMdd格式的时间差。所以还需要转换一下

select from_unixtime(unix_timestamp('20080520','yyyyMMdd'),'yyyy-MM-dd');
> 2008-05-20

然后计算年龄

select floor(datediff(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),from_unixtime(unix_timestamp('20080520','yyyyMMdd'),'yyyy-MM-dd'))/365);
> 14

先计算天数差,然后除以365,之后取整即可。这是比较粗略的计算年龄。

其实我觉得更好的办法,用程序写一个hive函数,部署可能更直观一点。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值