我试图找到从 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');
谢谢!
-丽贝卡
最佳答案
如果你在 Hive 中有像 yyyy-MM-dd hh:mm:ss 这样的日期格式,使用下面的函数很容易实现
concat((year(date_field)-1),'-', (month(date_field)-1), '-', day(date_field))
使用 IF 和 CASE 函数来实现您的逻辑来判断是否是闰年(通过将年份除以 4)
关于date - Hive:从当前日期减去 1 年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29104719/