需要在sql中将trunc(date,'q')的等效函数转换为hive

时间:2017-03-16 02:34:20

标签: hive hiveql

我有一个月份开始日期的表格。我使用oracle中的oracle函数trunc(date_column,'q')将它们转换为quarter。但是,这不适用于Hive QL。在蜂巢中需要相同的东西。

由于

1 个答案:

答案 0 :(得分:0)

这似乎是最干净的方式

with t as (select date '2016-08-27' as dt) 
select add_months(trunc(dt,'MM'),-(month(dt)-1)%3) from t
;
  

2016年7月1日

以下是另外两个选项

with t as (select date '2016-08-27' as dt) 
select  trunc(add_months(dt,-(month(dt)-1)%3),'MM') 
from    t
;
  

2016年7月1日

with t as (select date '2016-08-27' as dt) 
select  add_months(trunc(dt,'YY'),cast((month(dt)-1) div 3 * 3 as INT)) 
from    t
;
  

2016年7月1日