引言
在hive中我们经常需要处理日期数据,hive内置了3个日期函数,其格式只能为yyyy-MM-dd
格式或者yyyy-MM-dd HH:mm:ss'
格式
常用date函数
日期比较函数:datediff
语法
datediff(string enddate,string startdate)
说明:返回结束日期enddate
减去开始日期startdate
的天数
返回值类型:int
示例
- 返回天数为正
hive> select datediff('2022-01-02','2022-01-01');
1
2.返回天数为负数
hive>select datediff('2022-01-01','2022-01-03');
-2
- 返回最近一周的数据
hive>select * from table_01 where datediff(current_timestamp,create_time)<=7;
其中:create_time
为table_01
中的时间字段;current_timestamp
为放回当前时间;
日期增加函数:date_add
语法
date_add(string startdate,int days)
说明:返回开始日期startdat增加天数days后的日期,days
可以正负数,若days>0
,则表示增加days的日期。若days<0
,则表示减少days的日期。
返回值类型:string
示例
- 返回2天日期
hive>select date_add('2022-01-01',2);
2022-01-03
- 返回一周后那一天的预测数据
hive>select * from table_01 where create_time = date_add(current_timestamp,7);
其中:create_time
为table_01
中的时间字段;current_timestamp
为放回当前时间;
日期减少函数:date_sub
语法
date_sub(string startdate,int days)
说明:返回开始日期startdat减去天数days后的日期,days
可以正负数,若days>0
,则表示减少days的日期。若days<0
,则表示增加days的日期。
返回值类型:string
- 返回9天前的日期
hive>select date_sub('2022-01-10',9);
2022-01-01
- 返回一周前当天的数据
hive>select * from table_01 where create_time=date_sub(current_timestamp,7);
其中:create_time
为table_01
中的时间字段;current_timestamp
为放回当前时间;