Hive:从时间范围中减去月份
Hive: Subtracting months from a timeframe
我的时间范围是 2017-2-1(yyyy-m-d 格式)。我需要在 where 语句中回顾 12 个月。所以,答案应该是这样的:2016-2-1;
我试过
where previous_date= add_months('2017-2-1', -12)
但是,我得到的输出似乎是空的。但是,我确实有
的数据
previous_date= '2016-2-1'
有什么方法可以不使用 add_months 来减去一定数量的月份吗?或者,我在使用 add_months 语句时是否遗漏了什么?
我不想减去 365 天。因为,这可能会给我错误的闰年输出。
这是因为在应用添加月份后,您会得到一个字符串 yyyy-MM-dd。从 Hive 1.2 开始,您可以像这样 date_format UDF
select date_format(add_months('2017-2-1', -12), 'yyyy-M-d');
所以你的 where 子句应该是这样的
where previous_date= date_format(add_months('2017-2-1', -12), 'yyyy-M-d')
我的时间范围是 2017-2-1(yyyy-m-d 格式)。我需要在 where 语句中回顾 12 个月。所以,答案应该是这样的:2016-2-1; 我试过
where previous_date= add_months('2017-2-1', -12)
但是,我得到的输出似乎是空的。但是,我确实有
的数据previous_date= '2016-2-1'
有什么方法可以不使用 add_months 来减去一定数量的月份吗?或者,我在使用 add_months 语句时是否遗漏了什么? 我不想减去 365 天。因为,这可能会给我错误的闰年输出。
这是因为在应用添加月份后,您会得到一个字符串 yyyy-MM-dd。从 Hive 1.2 开始,您可以像这样 date_format UDF
select date_format(add_months('2017-2-1', -12), 'yyyy-M-d');
所以你的 where 子句应该是这样的
where previous_date= date_format(add_months('2017-2-1', -12), 'yyyy-M-d')