Hive常用日期函数,时间函数
Hive常用日期函数,时间函数
- 月份增减 add_months()
-- 1. 月份增减 add_months(), 返回类型: STRING - dateSELECT add_months('2023-07-05',-2);-- 2023-05-05SELECT add_months('2023-07-05',2);-- 2023-09-05
- 当前时间日期 current_date()
-- 2. 当前时间日期 current_date(), 返回类型:dateSELECTcurrent_date();-- 2023-07-05
- 当前时间戳 current_timestamp()
-- 3. 当前时间戳 current_timestamp(), 返回类型:timestamp - date timeSELECTcurrent_timestamp();-- 2023-07-05 11:17:56.314
- 日期间隔天数 datediff()
-- 4. 日期间隔天数 datediff(), 返回类型: intSELECT datediff('2023-07-05','2023-07-10');-- -5SELECT datediff('2023-07-05','2023-06-05');-- 30
- 日期增减 date_add()
-- 5. 日期增减 date_add(), 返回类型: string - dateSELECT date_add('2023-07-05',8);-- 2023-07-13SELECT date_add('2023-07-05',-8);-- 2023-06-27
- 时间戳返回指定日期格式 date_format()
-- 6. 时间戳返回指定日期格式 date_format(), 返回类型: stringSELECT date_format(current_date(),'yyyy-MM');-- 2023-07SELECT date_format(current_timestamp(),'yyyy-MM-dd');-- 2023-07-05SELECT date_format('2023-07-05 11:17:56.314','yyyy');-- 2023
- 返回日期减少时间 date_sub()
-- 7. 返回日期减少时间 date_sub(), 返回类型: stringSELECT date_sub('2023-07-05',-2);-- 2023-07-07SELECT date_sub('2023-07-05',2);-- 2023-07-03
- 返回时间的日期部分 day()
-- 8. 返回时间的日期部分 day(), 返回类型: intSELECTday('2023-07-05 11:17:56.314');-- 5SELECTday('2023-07-05');-- 5
- 返回时间的日期部分 dayfmonth()
-- 9. 返回时间的日期部分 dayfmonth(), 返回类型: intSELECT dayofmonth('2023-07-05 11:17:56.314');-- 5SELECT dayofmonth('2023-07-05');-- 5
- 将时间戳(10位)转为日期字符串格式 from_unixtime(bigint,‘格式’)
-- 10. 将时间戳(10位)转为日期字符串格式 from_unixtime(bigint,'格式'), 返回类型: stringSELECT from_unixtime(1688538070,'yyyy-MM-dd');-- 2023-07-05SELECT from_unixtime(1688538070,'yyyy-MM-dd HH:mm:ss');-- 2023-07-05 14:21:10
- 将日期时间,转化为特定是去的时间 from_utc_timestamp()
-- 11. 将日期时间,转化为特定是去的时间 from_utc_timestamp(), 返回类型: 日期SELECT from_utc_timestamp('2023-07-05 11:17:56.314','PST');-- 2023-07-05 04:17:56.314SELECT from_utc_timestamp('2023-07-05 11:17:56.314','GMT');-- 2023-07-05 11:17:56.314SELECT from_utc_timestamp('2023-07-05 11:17:56.314','UTC');-- 2023-07-05 11:17:56.314SELECT from_utc_timestamp('2023-07-05 11:17:56.314','DST');-- 2023-07-05 11:17:56.314SELECT from_utc_timestamp('2023-07-05 11:17:56.314','CST');-- 2023-07-05 06:17:56.314
- 返回时间的小时部分 hour()
-- 12. 返回时间的小时部分 hour(), 返回类型: intSELECThour('2023-07-05 11:17:56.314');-- 11
- 获取给定日期的当月的最后一天 last_day()
-- 13. 获取给定日期的当月的最后一天 last_day(), 返回类型: stringSELECT last_day('2023-07-05 11:17:56.314');-- 2023-07-31SELECT last_day('2023-07-05');-- 2023-07-31
- minute() 返回时间的分钟值
-- 14. minute() 返回时间的分钟值, 返回类型: intSELECTminute('2023-07-05 11:17:56');-- 17
- month() 返回时间的月份值
-- 15. month() 返回时间的月份值, 返回类型: intSELECTmonth('2023-07-05 11:17:56');-- 7
- months_between() 返回两个时间之间的月份差
-- 16. 返回两个时间之间的月份差, 返回类型: doubleSELECT months_between('2023-07-05','2023-06-05');-- 1.0SELECT months_between('2023-07-05','2023-06-21');-- 0.48387097
- next_day() 返回指定日期的下一个周几日期
-- 17. next_day 返回指定日期的下一个周几日期, 返回类型: stringSELECT next_day('2023-07-05','Mon');-- 返回当前日期的下一个周一日期:2023-07-10SELECT next_day('2023-07-05','Tu');-- 返回当前日期的下一个周二日期:2023-07-11SELECT next_day('2023-07-05','Wed');-- 返回当前日期的下一个周三日期:2023-07-12SELECT next_day('2023-07-05','Th');-- 2022-03-09为周三,指定参数为周四,所以返回当周的周四就是:2023-07-06SELECT next_day('2023-07-05','Fri');-- 返回当周周五日期:2023-07-07SELECT next_day('2023-07-05','Sat');-- 返回当周周六日期:2023-07-08SELECT next_day('2023-07-05','Sun');-- 返回当周周日日期:2023-07-09
- quarter() 返回指定日期的季度
-- 18. quarter() 返回指定日期的季度, 返回类型: intSELECT quarter('2023-07-05');-- 3
- second() 返回给定时间的秒值
-- 19. second() 返回给定时间的秒值, 返回类型: intSELECTsecond('2023-07-05 11:17:56.314');-- 56
- to_date() 返回给定时间的日期部分
-- 20. to_date() 返回给定时间的日期部分, 返回类型: dateSELECT to_date('2023-07-05 11:17:56.314');-- 2023-07-05SELECT to_date('2023-07-05');-- 2023-07-05
- to_utc_timestamp() 转换成世界标准时间UTC的时间
-- 21. to_utc_timestamp 转换成世界标准时间UTC的时间, 返回类型: timestampSELECT to_utc_timestamp('2023-07-05 11:17:56.314','GMT');-- 2023-07-05 11:17:56.314SELECT to_utc_timestamp('2023-07-05 11:17:56.314','PST');-- 2023-07-05 18:17:56.314
- trunc() 获取指定日期部
-- 22. trunc() 获取指定日期部分, 返回类型: stringSELECT trunc('2023-07-05 11:17:56','YY');-- 2023-01-01SELECT trunc('2023-07-05 11:17:56','YYYY');-- 2023-01-01SELECT trunc('2023-07-05 11:17:56','YEAR');-- 2023-01-01SELECT trunc('2023-07-05 11:17:56','MM');-- 2023-07-01SELECT trunc('2023-07-05 11:17:56','MON');-- 2023-07-01SELECT trunc('2023-07-05 11:17:56','MONTH');-- 2023-07-01
- unix_timestamp() 返回日期的时间戳
-- 23. unix_timestamp() 返回日期的时间戳, 返回类型: bigintSELECT unix_timestamp();-- 1688545018 当前时间SELECT unix_timestamp('2023-07-05','yyyy-MM-dd');-- 1688486400SELECT unix_timestamp('2023-07-05 11:17:56','yyyy-MM-dd hh:mm:ss');-- 1688527076 -- 小时小写会出现 'NULL'SELECT unix_timestamp('2023-07-05 11:17:56','yyyy-MM-dd HH:mm:ss');-- 1688527076
- weekofyear() 返回指定日期在一年中的第几周
-- 24. weekofyear() 返回指定日期在一年中的第几周, 返回类型: intSELECT weekofyear('2023-01-01');-- 52SELECT weekofyear('2023-01-02');-- 1SELECT weekofyear('2023-07-05');-- 27SELECT weekofyear('2023-07-05 11:17:56');-- 27
- year() 返回时间的年份
-- 25. year() 返回时间的年份, 返回类型: intSELECTyear('2023-07-05');-- 2023
- extract() 提取指定值
-- 26. extract() 提取指定值 day, dayofweek, hour, minute, month, quarter, second, week, year 返回类型: intSELECT extract(secondfrom'2023-07-05 11:17:56');-- 56SELECT extract(minutefrom'2023-07-05 11:17:56');-- 17SELECT extract(hourfrom'2023-07-05 11:17:56');-- 11SELECT extract(dayfrom'2023-07-05 11:17:56');-- 5SELECT extract(monthfrom'2023-07-05 11:17:56');-- 7SELECT extract(yearfrom'2023-07-05 11:17:56');-- 2023SELECT extract(week from'2023-07-05 11:17:56');-- 27SELECT extract(quarter from'2023-07-05 11:17:56');-- 3SELECT extract(dayofweek from'2023-07-05 11:17:56');-- 4
end
本文转载自: https://blog.csdn.net/Taerge0110/article/details/135223678
版权归原作者 Taerge0110 所有, 如有侵权,请联系我们删除。
版权归原作者 Taerge0110 所有, 如有侵权,请联系我们删除。