如何从Hive获取最近2个月的数据?
这是我的尝试:
select (date_add(FROM_UNIXTIME(UNIX_TIMESTAMP(), 'yyyy-MM-dd'),
2 - month(FROM_UNIXTIME(UNIX_TIMESTAMP(), 'yyyy-MM-dd'))
));
结果于2015-05-30。结果应如下:如果今天是'2015-06-03',那么过去两个月的结果应该是:'2015-04-01'。请注意,我将结果的第一天放在第一天。我在这做错了什么?谢谢!
额外说明:
在SQL中很容易获得:
select * from date_field >= DATEADD(MONTH, -2, GETDATE());
答案 0 :(得分:0)
date_add增加天数,而不是月数。以下行评估为-4
2 - month(FROM_UNIXTIME(UNIX_TIMESTAMP(), 'yyyy-MM-dd'))
所以你基本上从2015-06-03'中减去了4天,这就是你得到结果的原因' 2015-05-30'。
据我所知,在Hive中没有直接减去月份的方法。您可以考虑的解决方案: