蜂巢sql:提取最近12个月的行

时间:2018-07-23 04:05:05

标签: sql hive hiveql

有一列“月”,其类型为字符串,其值如下:

+--------+
| month  |
+--------+
| 201507 |
| 201803 |
| 201602 |
| 201709 |
+--------+

熟悉配置单元时间操作的人,请告诉我如何根据月份字段提取最近12个月的行。

2 个答案:

答案 0 :(得分:1)

我认为这可以满足您的要求

where cast(substring(month, 1, 4) || '-' || substring(month, 5, 2) || '-01' as date) >= add_months(current_date, -12)

答案 1 :(得分:0)

从Hive 4.0.0开始,add_months支持可选参数output_date_formatadd_months(string start_date, int num_months, output_date_format)

select month 
  from table 
 where month >= add_months(current_date, -12,'yyyyMM');

Hive 4.0.0之前:

select month 
      from table 
     where month >= date_format(add_months(current_date, -12),'yyyyMM');