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 |
本月任意一天 |
上上月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) |
|
|
|
|
|