HIVE SQL时间函数使用

获取yyy-MM-DD当前日期

SELECT CURRENT_DATE;

— 2019-06-25

获取yyy-MM-DD hh:mm:ss当前日期

 SELECT CURRENT_TIMESTAMP;

– 2019-06-25 15:33:25

获取当前时间unix时间戳

SELECT unix_timestamp()

–1561447860

获取指定时间unix时间戳

 SELECT unix_timestamp('20190625','yyyymmdd')

–1548345960

将unix时间戳转换为指定格式时间

SELECT from_unixtime(unix_timestamp(),'yyyy-MM-dd')

– 2019-06-25

将unix时间戳转换为默认格式时间

SELECT from_unixtime(unix_timestamp())

2019-06-25 15:33:25

不同时间格式的转换

from_unixtime(unix_timestamp('20180905','yyyymmdd'),'yyyy-mm-dd')
或者
concat(substr('20180905',1,4),'-',substr('20180905',5,2),'-',substr('20180905',7,2))

加减天数(yyyy-MM-dd)

date_add('2008-12-31', 1) = '2009-01-01'

date_sub(current_date ,1) = 昨天的日期(yyyy-MM-dd)

获取前 n 个小时或者后 n 个小时的时间

from_unixtime(unix_timestamp(date_format(current_timestamp,'yyyy-MM-dd HH:mm:ss') )-3600*n)

获取日期中的年/月/日/时/分/秒/周
dt=from_unixtime(unix_timestamp())

select year(dt),month(dt),day(dt),hour(dt),minute(dt),second(dt),weekofyear(dt)

计算两个日期之间的天数: datediff

select datediff('2017-09-15','2017-09-01') from dual;  

其它

查询当月第几天: dayofmonth(current_date);
月末: last_day(current_date)
当月第1天: date_sub(current_date,dayofmonth(current_date)-1)
下个月第1天: add_months(date_sub(current_date,dayofmonth(current_date)-1),1)

你可能感兴趣的:(Hive)