返回日期的年份数
hive> select year('2021-06-21 16:45:46');
OK
2021
返回日期的月份值
hive> select month('2021-12-21');
OK
12
返回日期的当前天数
hive> select day('2021-12-21');
OK
21
返回日期或时间的小时
hive> select hour('2021-06-21 16:45:46');
OK
16
返回时间的分钟值
hive> select minute('16:45:46');
OK
45
返回日期或时间的秒数
hive> select second('2021-06-21 16:45:46');
OK
46
月份增加
hive> select add_months('2021-02-28',1);
OK
2021-03-31
日期增加
hive> select date_add('2021-06-30',1);
OK
2021-07-01
日期减少
hive> select date_sub('2021-06-30',1);
OK
2021-06-29
日期格式化
hive> select date_format('2021-06-30','M');
OK
6
求两个日期的差值
hive> select datediff('2021-06-12','2021-06-14');
OK
-2
hive> select datediff('2021-06-14','2021-06-12');
OK
2
求年月日的日
hive> select dayofmonth('2021-06-30');
OK
30
求当前日期是星期几,一周从星期天开始
hive> select dayofweek('2021-06-21');
OK
2
返回指定时间是这一年的第几周
hive> select weekofyear('2021-06-21');
OK
38
当前日期
hive> select current_date();
OK
2021-06-29
获取当前时间,精确到毫秒
hive> select current_timestamp();
OK
2021-06-29 16:37:15.721
from_unix(unix_time,format) 把时间戳转换为时间,只能精确到秒。
hive> select from_unixtime('123123127','yyyy-MM-dd HH:mm:ss');
OK
1973-11-26 08:52:07
unix_timestamp(date[,pattern]) 把时间转换为时间戳,只能精确到秒。
hive> select unix_timestamp('2021-06-21 16:40:40','yyyy-MM-dd HH:mm:ss');
OK
1624264840
to_unix_timestamp(date[,pattern]) 把时间转换为时间戳,只能精确到秒。
hive> select to_unix_timestamp('2021-06-21 16:40:40','yyyy-MM-dd HH:mm:ss');
OK
1624264840
to_utc_timestamp(timestamp,string timezone) 支持毫秒精度的时间戳,需要指定时区
hive> select to_utc_timestamp('1559461463324','GMT');
OK
2019-06-02 15:44:23.324
from_utc_timestamp(timestamp,string timezone) 支持毫秒精度的时间戳,需要指定时区
hive> select from_utc_timestamp('1559461463324','GMT');
OK
2019-06-02 15:44:23.324
next_day(start_date,day_of_week) 求当前日期的下一个周几
hive> select current_date();
OK
2021-07-19
hive> select next_day(current_date(),'mo');
OK
2021-07-26
hive> select next_day(current_date(),'tu');
OK
2021-07-20
hive> select next_day(current_date(),'we');
OK
2021-07-21
hive> select next_day(current_date(),'th');
OK
2021-07-22
hive> select next_day(current_date(),'fr');
OK
2021-07-23
hive> select next_day(current_date(),'sa');
OK
2021-07-24
hive> select next_day(current_date(),'su');
OK
2021-07-25
last_day(date) 返回某个月的最后一天
hive> select last_day('2021-08-01');
OK
2021-08-31
months_between(‘date1’,‘date2’) 返回两个日期之间的月份差,date1如果比date2日期晚,返回正数,反之,返回负数。
hive> select months_between('2021-06-04','20211-05-04');
OK
1.0
hive> select months_between('2021-03-04','20211-05-04');
OK
-2.0
to_date(expr)
hive> select to_date('2021-08-01 04:14:13');
OK
2021-08-01
trunc(date,fmt) date:日期时间类型 fmt:MONTH/MON/MM OR YEAR/YYYY/YY 截断指定格式,后补初始时间,如果为YEAR则返回year(date)-01-01,如果为MM则返回year(date)+month(date)-01
hive> select trunc('2016-10-27','YEAR');
OK
2016-01-01
hive> select trunc('2016-10-27','MM');
OK
2016-10-01