Hive SQL 常用日期

时间:2022-07-15 16:07:21

Hive SQL 常用日期

原文地址:Hive SQL常用日期函数

Hive SQL 常用日期

注意: MM DD MO TU等要大写

已知日期 要求日期 语句 结果
本周任意一天 本周一 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
本月任意一天 上上月26 select date_add(add_months(trunc('2016-11-02','MM'),-2),25) ; 2016-09-26
本月任意一天 上月26 select 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)