hive:从当前日期减去1年

h43kikqp  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(7809)

我正在试图找到一种最佳方法,从配置单元查询中的当前日期减去1年和1个月。使用下面的方法,我不相信它会考虑闰年,或者如果事实上月份有不同的天数,那么最终代码会被破坏。任何帮助都将不胜感激!

set my_date = from_unixtime(unix_timestamp()-365*60*60*24, 'yyyy-MM-dd');
set my_date = from_unixtime(unix_timestamp()-30*60*60*24, 'yyyy-MM-dd');

谢谢!
-丽贝卡

yv5phkfx

yv5phkfx1#

如果在hive中有yyyy-mm-dd hh:mm:ss这样的日期格式,那么使用以下函数很容易实现
concat((年(日期字段)-1)、'-'、(月(日期字段)-1)、'-'、日(日期字段))
使用if和case函数来实现逻辑,以确定是否是闰年(用年份除以4)

相关问题