Hive的时间操作函数

这篇具有很好参考价值的文章主要介绍了Hive的时间操作函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

hive 里面的时间函数有很多,今天单讲dayofweek函数,背景:有时候不仅要出日报,还要出周报,需要很多天归为同一周,求sum或者均值;

函数使用介绍

在Hive中,可以使用dayofweek()函数来计算某个日期是一周的第几天。该函数的语法如下:

dayofweek(date)

其中,date表示要计算的日期,可以是一个日期字符串或者一个日期类型的列名。
dayofweek()函数返回一个整数,表示日期所在周的第几天,返回值范围为1-7,其中1表示周日,2表示周一,以此类推。
例如,要计算当前日期是一周的第几天,可以使用以下HiveQL语句:

SELECT dayofweek(current_date());

该语句会返回当前日期所在周的第几天,例如,如果当前日期是周三,则返回值为4。文章来源地址https://www.toymoban.com/news/detail-861697.html

实际使用

判断该天是星期几

select 
case when dayofweek('${etl_date}') =1 then '星期日'
     when dayofweek('${etl_date}') =7 then '星期六'
     when dayofweek('${etl_date}') =6 then '星期五'
     when dayofweek('${etl_date}') =5 then '星期四'
     when dayofweek('${etl_date}') =4 then '星期三'
     when dayofweek('${etl_date}') =3 then '星期二'
     when dayofweek('${etl_date}') =2 then '星期一'
     else null 
     end as weekday

判断该天对应的周(包含一周开始和结束)

select 
case when dayofweek('${etl_date}') =1 then concat(date_add('${etl_date}',-6),'~','${etl_date}')
     when dayofweek('${etl_date}') =7 then concat(date_add('${etl_date}',-5),'~',date_add('${etl_date}',1))
     when dayofweek('${etl_date}') =6 then concat(date_add('${etl_date}',-4),'~',date_add('${etl_date}',2))
     when dayofweek('${etl_date}') =5 then concat(date_add('${etl_date}',-3),'~',date_add('${etl_date}',3))
     when dayofweek('${etl_date}') =4 then concat(date_add('${etl_date}',-2),'~',date_add('${etl_date}',4))
     when dayofweek('${etl_date}') =3 then concat(date_add('${etl_date}',-1),'~',date_add('${etl_date}',5))
     when dayofweek('${etl_date}') =2 then concat('${etl_date}','~',date_add('${etl_date}',6))
     else null 
     end as week_name

到了这里,关于Hive的时间操作函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【hive】时间相关函数的使用(时间戳函数unix_timestamp()/from_unixtime()、日期处理函数datediff()/date_sub()/date_add()等)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 unix_timestamp() 无参数调用,获取当前系统时间戳为10位的bigint类型数值,该数值只精确到秒。 unix_timestamp(string timestamp) 输入格式默认为“yyyy-MM-dd HH:mm:ss”,如不符合则返回null。 unix_timestamp(string date,str

    2024年02月08日
    浏览(40)
  • Hive学习(12)Hive常用日期函数

    1、hive返回当天三种方式 2、from_unixtime:转化unix时间戳到当前时区的时间格式 3、unix_timestamp:获取当前unix时间戳 4、year:返回日期中的年 5、month:返回日期中的月份 6、day:返回日期中的天 7、hour:返回日期中的小时 8、minute:返回日期中的分钟 9、second:返回日期中的秒

    2024年02月11日
    浏览(35)
  • Hive日期函数详细讲解

    Hive 提供了一系列的内建日期函数,用于处理日期和时间数据。以下是您提到的日期函数的详细讲解,包括案例和使用注意事项: FROM_UNIXTIME() 功能 :将 Unix 时间戳(秒为单位)转换为日期时间格式。 语法 : FROM_UNIXTIME(unix_timestamp[, format]) 案例 : SELECT FROM_UNIXTIME(1609459200);  

    2024年01月20日
    浏览(91)
  • Hive常用的日期函数

    注意: current_timestamp() 获取的时UTC默认时区。 给定一个时间戳可基于 from_utc_timestamp/to_utc_timestamp 进行转换。 注意: nbsp;nbsp; 如果当前年的第一个周,天数超过3天,那就是当前年的第一周; nbsp;nbsp; 如果当前年的第一个周,天数小于等于3天,那就是上一年的最后一周。 wee

    2024年02月07日
    浏览(43)
  • Hive常见的日期函数

    1、fom_unixtime UNIX 时间戳转日期 语法:fom_unixtime(bigint unixtime[, string format]); 返回类型:string 说明:转化 UNIX 时间戳(从1970-01-01 00:00:00 UTC 到指定时间的秒数)到当前时区的时间格式。 例如: select from_unixtime(1590000000, \\\'yyyy-MM-dd\\\'); 返回: 2020-05-21 2、unix_timestamp 获取当前 UNIX 时间

    2024年04月10日
    浏览(68)
  • 1/50 hive sql 日期处理函数

    目录 一、获取当前时间 二、获取指定时间 三、转换时间格式 【1】to_date(string timestamp) 【2】date_format(date string timestamp,string format) 【3】from_unixtime(bigint unixtime,string format) 【4】unix_timestamp(date string timestamp,string pattern)  【5】其余格式的指定转换 regexp_replace()、from_unixtime(unix_ti

    2023年04月25日
    浏览(46)
  • Hive日期函数应用之月份差值计算

    目前计算Hive月份差值有多种方法,下面介绍两种方法进行计算,各有优缺点 一个常见的方法是首先将日期转换为 Unix 时间戳(如果它们还不是的话),然后通过计算时间戳之间的差值,并将这个差值转换为月份。然而,这种方法并不总是准确的,因为它假设每个月都有相同

    2024年01月22日
    浏览(45)
  • spark SQL 怎么将一个时间戳字符串转换成hive支持的时间日期类型?

    在 Spark SQL 中,可以使用 to_timestamp 函数将一个时间戳字符串转换成 Hive 支持的时间日期类型。这个函数的语法如下: 其中,timestampStr 表示要转换的时间戳字符串,format 表示时间戳字符串的格式,格式必须与时间戳字符串的实际格式相匹配。如果不指定格式,Spark 会使用默认

    2024年02月11日
    浏览(47)
  • Hive--时间函数大全

    注:第二个参数为时间格式,默认是’yyyy-MM-dd HH:mm:ss’ 注:to_date() 默认转化格式为’yyyy-MM-dd’ 注:next_day()第⼆个参数⽀持⼩写、⼤写、缩写(su/sun/sunday)

    2024年02月07日
    浏览(46)
  • hive时间和字符串互转,时间函数

    hive里经常需要将字符串转化为date或timestamp 或者转化为日期格式的string 先说一个简单的 cast(xx as date/string/timestamp) 这个大多情况都可以用 1.to_date to_date只保留年月日,参数必须是string类型的yyyy-MM-dd HH:mm:ss或者date或timestamp类型, 返回值是date类型,注意这个返回类型,这个是少数

    2024年02月02日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包