当前位置:   article > 正文

Hive 日期时间操作_hive current_timestamp

hive current_timestamp

1. 获取当前日期

current_date
  • 1

在这里插入图片描述

2. 获取当前时间

current_timestamp
  • 1

在这里插入图片描述

3. 按格式获取当前日期时间

from_unixtime(current_timestamp(),'yyyy-MM-dd HH:mm:ss') 
from_unixtime(current_timestamp(),'yyyy-MM-dd  HH') 
from_unixtime(current_timestamp(),'yyyyMMdd') 
  • 1
  • 2
  • 3

在这里插入图片描述
在这里插入图片描述
hive官方不推荐用了,可以用current_timestamp然后用substr()截取

substr(current_timestamp,1,10)
substr(current_timestamp,1,19)
  • 1
  • 2

在这里插入图片描述

4. 前后几个月

add_months(current_timestamp, -6)
add_months(current_timestamp, 6)

add_months(current_date, -6)
add_months(current_date, 6)

add_months('2020-12-01', -6)
add_months('2020-12-01', 6)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 前后几天

date_add(current_date, 6)
date_sub(current_date, 6)

date_add(current_date, -6)
date_sub(current_date, -6)
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
在这里插入图片描述

6. 计算天数差

datediff(start_time,end_time)
  • 1

在这里插入图片描述
datediff 在处理date格式 会有坑,会少一天
在这里插入图片描述

7. 计算时间差

(unix_timestamp(start_time)-unix_timestamp(end_time))/3600
  • 1

在这里插入图片描述

8. 获取日期中的年月日、时分秒以及当前的周数

select year(current_timestamp);   ----返回日期中的年
select month(current_timestamp);  ----返回日期中的月
select day(current_timestamp);    ----返回日期中的日
select hour(current_timestamp);   ----返回日期中的时
select minute(current_timestamp); ----返回日期中的分
select second(current_timestamp); ----返回日期中的秒
select weekofyear(current_timestamp); ----返回日期在当前的周数
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

9. 时间戳转为日期

输入的时间戳需要是整数,不能是字符串

select from_unixtime(1606989058,'yyyy-MM-dd HH:mm:ss') ; --秒级
select from_unixtime( cast(1606989066019/1000 as int),'yyyy-MM-dd HH:mm:ss') ;  --毫秒级
  • 1
  • 2

在这里插入图片描述

10. 日期转为时间戳

必须是严格的‘yyyyMMdd HH:mm:ss’格式,转换后的是秒级的,不是毫秒级的

select unix_timestamp('2020-12-03 17:51:06');
  • 1

在这里插入图片描述

11. 根据日期获取星期几

pmod(datediff(current_timestamp, '1920-01-01') - 3, 7) 
  • 1

输出的结果为0-6的数,分别表示 日,一,二 … 六。
在这里插入图片描述

12. 当月第一天和当月最后一天

trunc(current_timestamp,'MM')   -- 当月第一天                                                           
last_day(current_timestamp)    -- 当月最后一天
  • 1
  • 2

在这里插入图片描述

13. 当年第一天和当年最后一天

trunc(current_timestamp,'YY')                      -- 当年第一天                                                           
last_day(add_months(trunc(current_date,'YY'),11))  -- 当年最后一天
  • 1
  • 2

在这里插入图片描述

14. 当前星期的下个星期几

next_day(current_timestamp, 'TU')
  • 1

仅支持下面的格式,忽略大小写

中文23全称
星期一MOMonMonday
星期二TUTueTuesday
星期三WEWedWednesday
星期四THThuThursday
星期五FRFriFriday
星期六SASatSaturday
星期天SUSunSunday

在这里插入图片描述

15. 获取当前日期所在的季度

ceil(month(current_date)/3)
lpad(ceil(month(current_date)/3),2,0)
  • 1
  • 2

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/276871
推荐阅读
相关标签
  

闽ICP备14008679号