欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

hive日期函数处理

发布时间:2024/1/1 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 hive日期函数处理 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1. 日期函数unix时间转日期函数:from_unixtime,语法为from_unixtime(bigint unixtime, stringformat)

select from_unixtime('1323308943','yyyyMMdd') --20111208

2. 获取unixtime:current_timestamp()

select current_timestamp(from_unixtime())

3. 获取当前日期

select current_date()

4. 日期相减得到天数差:datediff(enddate,startdate)

5. 日期加减:date_add(date,add_days), date_sub(date,sub_days)

6. 转成日期:

select to_date('2018-02-27 10:03:01') ; --2018-02-27 7 --当月最后一天 select last_day('2018-02-27 10:03:01'); --2018-02-28--当月第一天 select trunc(current_date,'MM') as day; --2020-11-01--当年第一天 select trunc(current_date,'YY') as day; --2020-01-01--next_day,返回当前时间的下一个星期几所对应的日期 select next_day('2018-02-27 10:03:01', 'TU');

selectday -- 时间,date_add(day,1 - dayofweek(day)) as week_first_day -- 本周第一天_周日,date_add(day,7 - dayofweek(day)) as week_last_day -- 本周最后一天_周六,date_add(day,1 - case when dayofweek(day) = 1 then 7 else dayofweek(day) - 1 end) as week_first_day -- 本周第一天_周一,date_add(day,7 - case when dayofweek(day) = 1 then 7 else dayofweek(day) - 1 end) as week_last_day -- 本周最后一天_周日,next_day(day,'TU') as next_tuesday -- 当前日期的下个周二,trunc(day,'MM') as month_first_day -- 当月第一天,last_day(day) as month_last_day -- 当月最后一天,to_date(concat(year(day),'-',lpad(ceil(month(day)/3) * 3 -2,2,0),'-01')) as season_first_day -- 当季第一天,last_day(to_date(concat(year(day),'-',lpad(ceil(month(day)/3) * 3,2,0),'-01'))) as season_last_day -- 当季最后一天,trunc(day,'YY') as year_first_day -- 当年第一天,last_day(add_months(trunc(day,'YY'),12)) as year_last_day -- 当年最后一天,weekofyear(day) as weekofyear -- 当年第几周,second(day) as second -- 秒钟,minute(day) as minute -- 分钟,hour(day) as hour -- 小时,day(day) as day -- 日期,month(day) as month -- 月份,lpad(ceil(month(day)/3),2,0) as season -- 季度,year(day) as year -- 年份 from (select '2018-01-02 01:01:01' as day union allselect '2018-02-02 02:03:04' as day union allselect '2018-03-02 03:05:07' as day union allselect '2018-04-02 04:07:10' as day union allselect '2018-05-02 05:09:13' as day union allselect '2018-06-02 06:11:16' as day union allselect '2018-07-02 07:13:19' as day union allselect '2018-08-02 08:15:22' as day union allselect '2018-09-02 09:17:25' as day union allselect '2018-10-02 10:19:28' as day union allselect '2018-11-02 11:21:31' as day union allselect '2018-12-02 12:23:34' as day ) t1 ;

spark字符串日期yyyymmdd计算天数差

df.withColumn("time",(unix_timestamp(col("dt"), "yyyyMMdd")-unix_timestamp(lit("20210926"), "yyyyMMdd"))/(3600*24)).show(10,false)

总结

以上是生活随笔为你收集整理的hive日期函数处理的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。