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

iecba09b  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(349)

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

xiozqbni

xiozqbni1#

这似乎是最干净的方法

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

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-07-01

相关问题