hive时间处理与MySQL、Oracle数据库,存在一定的差异,当前时间的获取,以及时间的加减,下面会提供详细的计算处理方式
一、hive时间获取与计算
1,获取当前时间
语法:CURRENT_date()
返回值:年月日
2,获取当前时间戳
(1)unix_timestamp()
语法: unix_timestamp()
返回值: bigint
说明: 获得当前时区的UNIX时间戳
需要将bigint的时间戳转换为时间类型的时间戳
语法: from_unixtime(bigint unixtime[, string format])
返回值:年月日时分秒
举例:select from_unixtime(unix_timestamp() ,'yyyy-MM-dd HH:mm:ss')
(2)CURRENT_TIMESTAMP()
语法:CURRENT_TIMESTAMP()
返回值:年月日时分秒
3,取得昨天日期
select date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1);
select date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),1);
select date_format(date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1);
4,取得明天日期
select date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),1);
select date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1