【hive 日期处理】

【hive 日期处理】,第1张

【hive 日期处理】

在上篇文章【hive_窗口函数】中学习了hive常见的窗口函数的使用场景及怎么使用,在工作中时间格式的数据也经常会遇到,今天就学习一下,常见的hive时间处理。

1、返回当周的周一
--法1:
    select current_date,date_sub(next_day(current_date,'MO'),7);
--法2:
    select current_date,date_sub(current_date,pmod(datediff(current_date,'1900-01-08'),7));

2、返回当周周五
select current_date,date_sub(current_date,pmod(datediff(current_date,'1900-01-05'),7))

3、日期加减(日、小时、分钟、秒)
select current_date,date_add(substr(current_date,1,10),6);  --当前日期加6天
select current_date,from_unixtime(unix_timestamp(current_date)+43200,'yyyy-MM-dd HH:mm:ss')  --12h=43200s:12*60*60,5m=300s:5*60
--mysql:
    select date_add(substr(current_date,1,10),interval 6 day);

4、时间差(日)
select datediff('2020-07-24 11:42:58','2020-07-23 15:01:13')

5、时间戳转化成时间
--10位时间戳
    select from_unixtime(1595487673,'yyyy-MM-dd HH:mm:ss')
--13位时间戳
    select from_unixtime(cast(1595487673343/1000 as int),'yyyy-MM-dd HH:mm:ss')


6、日期转化成时间戳
--10位时间戳
    select unix_timestamp(cast('2020-07-23 15:01:13' as timestamp))
--13位时间戳
    select unix_timestamp(cast(substr('2020-07-23 15:01:13.343', 1, 19) as timestamp)) * 1000 + cast(substr('2020-07-23 15:01:13.343', 21) as bigint)


详细内容请看我公众号~

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5706702.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存