Hive中如何实现YeardayFromDate功能?获取日期对应的年中天数
在Hive中实现获取日期年中天数(YeardayFromDate)的功能
嘿,这个需求在Hive里其实很容易解决,不用自己造轮子——Hive内置了专门的函数来获取日期对应的年中天数,正好对应你说的YeardayFromDate功能!
核心函数:dayofyear()
Hive的dayofyear()函数就是干这个的,它接收一个日期类型(或可转换为日期的字符串),直接返回该日期在当年的第几天,完全符合你要的效果。
具体示例
给你对应你提到的几个日期来演示:
- 对于日期
2018-01-23:
SELECT dayofyear('2018-01-23');
返回结果:23
- 对于日期
2018-02-25:
SELECT dayofyear('2018-02-25');
返回结果:56
- 对于日期
2018-12-31:
SELECT dayofyear('2018-12-31');
返回结果:365
额外小提示
如果你的日期字符串不是标准的yyyy-MM-dd格式,比如是20180123这种数字串,可以先用to_date()函数转换为标准日期格式,再传入dayofyear():
SELECT dayofyear(to_date('20180123', 'yyyyMMdd'));
同样会返回正确的结果23。另外,这个函数还会自动处理闰年情况,比如查询2020-12-31的话,会返回366哦。
内容的提问来源于stack exchange,提问作者Sathish
相关产品推荐
相关产品推荐

