hive 计算周几_HIVE 计算指定日期本周的第一天和最后一天

select

day

,(day,1) -- 时间

,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 -- 本周最后一天_周日

-- dayofweek在hive2.2.0开始支持,低版本的hive原生未提供dayofweek函数(获取一个日期是星期几的方法),

-- 所以只有我们自己编写udf函数提供,udf就不说了,在这里给出了一个使用hive原生函数获取星期几的技巧。

,date_format(from_unixtime(unix_timestamp('20190808','yyyyMMdd'),'yyyy-MM-dd'),'u') as dayofweek1 --本周第几天 u必须小写

,date_format('2019-08-08','u') --本周第几天 u必须小写

,7- datediff(next_day('2019-08-07',"Sunday"),'2019-08-07') --另外一种方式实现本周几

,dayofmonth(da

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值