hive时间函数
1. current_date():获取当前格式化日期
selectcurrent_date()as today;
2. current_timestamp():获取当前格式化时间
selectcurrent_timestamp()as today;
3. unix_timestamp():获取当前unix时间戳
select unix_timestamp()as today;
4. from_unixtime():把unix时间戳转化为格式化时间
select from_unixtime(1653363939)as today;
注:第二个参数为时间格式,默认是’yyyy-MM-dd HH:mm:ss’
select from_unixtime(unix_timestamp(),'yyyy-MM-dd')as today;
5. to_date(): 当前格式化时间(含时分秒)转化为年月日
注:to_date() 默认转化格式为’yyyy-MM-dd’
select to_date('2022-05-23 23:00:01')as today;
6. date_format(): 对日期进行格式化
select date_format('2022-05-23 23:00:01','yyyy-MM-dd')as today;select date_format('2022-05-23','yyyy-MM')asmonth;select date_format('2022-05-23','yyyy')asyear;
7. year/quarter/month/day/hour/minute/second: 年/季度/月/日/时/分/秒
selectyear('2022-05-01')asyear;select quarter('2022-05-23')as quarter;selectmonth('2022-05-01')asmonth;selectday('2022-05-23')asday;selecthour('2022-05-23 02:00:01')ashour;selectminute('2022-05-23 23:00:01')asminute;selectsecond('2022-05-23 23:00:01')assecond;
8. date_add(): 取格式化时间的前/后n天
select date_add('2022-05-23',1)as tomorrow;select date_add('2022-05-23',-7)as lastweek;
9. date_sub(): 取格式化时间的前/后n天
select date_sub('2022-05-23',1)as yeasterday;select date_sub('2022-05-23',-1)as nextday;
10. add_months(): 当前时间的前/后n个月
select add_months('2022-05-23',1)as nextmonth;select add_months('2022-05-23',-1)as lastmonth;
11. weekofyear(): 日期转周(当前的日期是一年中的第几周)
select weekofyear('2022-01-01')as01week;select weekofyear('2022-01-08')as08week;
12. dayofyear(): 日期转天(当前的日期是一年中的第几天)
13. datediff(): 获取两个时间的天数差值
select datediff('2022-01-08 00:00:01','2022-02-08 00:02:00')as diff;select datediff('2022-03-08','2022-02-08')as difftwo;
14. last_day(): 获取指定时间的当月的最后一天
select last_day('2022-02-05')asday;
15. next_day(): 获取指定时间的下一个星期几
注:next_day()第⼆个参数⽀持⼩写、⼤写、缩写(su/sun/sunday)
select next_day('2022-05-24','su')as nextsunday;select next_day('2022-05-24','MON')as nextmonday;
16. trunc(): 获取当月第一天/获取当年的第一天
select trunc('2022-05-22','YY')asyear;select trunc('2022-05-22','MM')asmonth;
17. 常用时间
I.本周第一天&上周第一天
//2022-05-23是周一//本周第一天select date_sub(next_day('2022-05-23','monday'),7)as monday;//上周第一天select date_sub(next_day('2022-05-25','monday'),14)as lastmonday;
II.本月第一天&本月最后一天&上月第一天
//本月第一天select trunc('2022-05-31','MM')asmonth;//本月最后一天select last_day('2022-02-05')asday;//上月第一天select trunc(add_months('2022-05-31',-1),'MM')as lastmonth;
本文转载自: https://blog.csdn.net/nayomi927/article/details/124943978
版权归原作者 小陈菜奈- 所有, 如有侵权,请联系我们删除。
版权归原作者 小陈菜奈- 所有, 如有侵权,请联系我们删除。