常见hive的时间函数
1、时间戳转化为日期函数
from_unixtime('1566390082')
from_unixtime('1566390082', 'yyyy-MM-dd')
from_unixtime('1566390082', 'yyyyMMdd')
2019-08-21 20:21:22
2019-08-21
20190821
2、将日期转换为时间戳
unix_timestamp('2019-08-21 20:21:22')
unix_timestamp('2019-08-21')'yyyy-MM-dd HH:mm:ss',没有指定日期格式,出错
unix_timestamp('2019-08-21', 'yyyy-MM-dd')
1566390082
NULL
1566316800
3、日期格式化函数
date_format('2019-08-21 20:21:22', 'yyyy-MM-dd')
date_format('2019-08-21 20:21:22', 'yyyyMMdd')
2019-08-21
20190821
4、获取年、月、日、天、小时、分钟、秒、周数、星期几、季节函数
year('2019-08-21 20:21:22')
month('2019-08-21 20:21:22')
day('2019-08-21 20:21:22')
hour('2019-08-21 20:21:22')
minute('2019-08-21 20:21:22')
second('2019-08-21 20:21:22')
weekofyear('2019-08-21 20:21:22')
dayofweek('2019-08-21 20:21:22')
ceil(month('2019-08-21 20:21:22')/3)--季节
2019 8 21 20 21 22 34 4 3
5、日期(月份)增减函数
date_add('2019-08-21',10) --增加日
date_sub('2019-08-21',10) --减少日
add_months('2019-08-21',1) --增加月
add_months('2019-08-21',2)
add_months('2019-08-21',-1) --减少月
add_months('2019-08-21',-2)
2019-08-31 2019-08-11 2019-09-21 2019-10-21 2019-07-21 2019-06-21
6、两个日期(月份)相减函数
datediff('2019-08-23', '2019-08-21')
months_between('2019-08-21', '2019-07-25')
2 0.87096774
7、获取月初(月末)、年初(年末)日期
last_day('2019-08-12'), --月末
trunc('2019-08-21', 'MM'), --月初
trunc('2019-08-21', 'YY'), --年初
date_sub(add_months(trunc('2019-08-21', 'YY'),12),1) --年末
2019-08-31 2019-08-01 2019-01-01 2019-12-31
8、获取日期的下个星期几的日期
next_day('2019-08-21', 'MO')
next_day('2019-08-21', 'TU')
next_day('2019-08-21', 'WE')
next_day('2019-08-21', 'TH')
next_day('2019-08-21', 'FR')
next_day('2019-08-21', 'SA')
next_day('2019-08-21', 'SU')
2019-08-26 2019-08-27 2019-08-28 2019-08-22 2019-08-23 2019-08-24 2019-08-25
注:本资源来源于网络