HiveSQL常用日期函数

注意 MM,DD,MO,TU 等要大写

Hive 可以在 where 条件中使用 case when

已知日期要求日期语句结果
本周任意一天本周一select date_sub(next_day(‘2016-11-29′,’MO’),7) ;2016-11-28
本周任意一天上周一select date_sub(next_day(‘2016-11-29′,’MO’),14) ;2016-11-21
本周任意一天本周二select date_sub(next_day(‘2016-11-29′,’MO’),6)2016-11-29
本周任意一天上周二select date_sub(next_day(‘2016-11-29′,’MO’),13) ;2016-11-22
本周任意一天上周末select date_sub(next_day(‘2016-11-29′,’MO’),8) ;2016-11-27
本月任意一天上月末select date_sub(trunc(‘2016-11-02′,’MM’),1);2016-10-31
本月任意一天上月初select trunc(add_months(‘2016-11-02′,-1),’MM’)2016-10-01
本月任意一天本月初select trunc(‘2016-11-02′,’MM’)2016-11-01
本月任意一天上上月26select date_add(add_months(trunc(‘2016-11-02′,’MM’),-2),25) ;2016-09-26
本月任意一天上月26select date_add(add_months(trunc(‘2016-11-02′,’MM’),-1),25) ;2016-10-26
 当前时间戳select current_timestamp() ;2016-11-30 15:18:06.276
 当前时间select current_date() ;2016-11-30
本季度任意一天上季度初case quarter(‘2016-05-23’)   
when 1 then concat(year(‘2016-05-23′)-1,’-10-01′) 
when 2 then concat(year(‘2016-05-23′),’-01-01′)   
when 3 then concat(year(‘2016-05-23′),’-04-01′)   
when 4 then concat(year(‘2016-05-23′),’-07-01′) 
end



add_months(concat(year(‘2017-02-23′),’-‘,substr(concat(‘0’,quarter(‘2017-02-23′)*3+1),-2),’-01′),-6)
本季度任意一天本季度初case quarter(‘2016-05-23’)   
when 1 then concat(year(‘2016-05-23′),’-01-01′)   
when 2 then concat(year(‘2016-05-23′),’-04-01′)   
when 3 then concat(year(‘2016-05-23′),’-07-01′)   
when 4 then concat(year(‘2016-05-23′),’-10-01′)
end



add_months(concat(year(‘2017-02-23′),’-‘,substr(concat(‘0’,quarter(‘2017-02-23′)*3+1),-2),’-01′),-3)
 
    

本文转载自,只做主题效果测试使用,本文观点不代表datadeepin立场。

发表评论

电子邮件地址不会被公开。 必填项已用*标注