如何制作数据库网站,泉州科技云网站建设,教育网站前置审批,seo网站优化专家目录 前言函数使用介绍实际使用判断该天是星期几判断该天对应的周#xff08;包含一周开始和结束#xff09; 前言
hive 里面的时间函数有很多#xff0c;今天单讲dayofweek函数#xff0c;背景#xff1a;有时候不仅要出日报#xff0c;还要出周报#xff0c;需要很多… 目录 前言函数使用介绍实际使用判断该天是星期几判断该天对应的周包含一周开始和结束 前言
hive 里面的时间函数有很多今天单讲dayofweek函数背景有时候不仅要出日报还要出周报需要很多天归为同一周求sum或者均值
函数使用介绍
在Hive中可以使用dayofweek()函数来计算某个日期是一周的第几天。该函数的语法如下
dayofweek(date)其中date表示要计算的日期可以是一个日期字符串或者一个日期类型的列名。 dayofweek()函数返回一个整数表示日期所在周的第几天返回值范围为1-7其中1表示周日2表示周一以此类推。 例如要计算当前日期是一周的第几天可以使用以下HiveQL语句
SELECT dayofweek(current_date());该语句会返回当前日期所在周的第几天例如如果当前日期是周三则返回值为4。
实际使用
判断该天是星期几
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