Hive 需要将sql中的trunc(date,';q';)的等效函数转换为配置单元

Hive 需要将sql中的trunc(date,';q';)的等效函数转换为配置单元,hive,hiveql,Hive,Hiveql,我有一个表,表中的日期为月份开始日期。我使用oracle中的oracle函数trunc(date_列,'q')将它们转换为季度。但是,这在配置单元QL上不起作用。在配置单元中需要与此等效的功能 谢谢这似乎是最干净的方式 with t as (select date '2016-08-27' as dt) select add_months(trunc(dt,'MM'),-(month(dt)-1)%3) from t ; 2016-07-01 这里还有两个选项 with t as (sel

我有一个表,表中的日期为月份开始日期。我使用oracle中的oracle函数trunc(date_列,'q')将它们转换为季度。但是,这在配置单元QL上不起作用。在配置单元中需要与此等效的功能


谢谢

这似乎是最干净的方式

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


这里还有两个选项

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


2016-07-01

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
;