蜂巢:从当前日期减去1年

时间:2015-03-17 16:36:32

标签: date hadoop hive unix-timestamp subtraction

我试图在Hive查询中找到从当前日期减去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');

感谢!

-Rebecca

1 个答案:

答案 0 :(得分:-1)

如果您的日期格式类似于Hive中的yyyy-MM-dd hh:mm:ss,则可以使用以下功能轻松实现

concat((year(date_field)-1),' - ',(month(date_field)-1),' - ',day(date_field))

使用IF和CASE函数来实现您的逻辑,以查找它是否为闰年(将年份除以4)