首页 > 解决方案 > 如何在 Hive 中检索给定日期的 WeekofMonth

问题描述

我在 Hive 2018-06-10 中有一个日期字段,我需要从中获取 WeekOfMonth

WEEKOFYEAR(order_time)

我需要 2018-06-10 的输出为 3(这是第 3 周。假设周从星期日开始)

Hive 中是否有任何内置函数来检索 WeekofMonth。我找不到任何东西。我在下面尝试根据分钟和秒进行转换,但是

from_unixtime(unix_timestamp(CURRENT_DATE())+7200)

但以上没有给出正确的值

标签: sqlhive

解决方案


对于一个月中的一周,您可以获得该月的某一天并除以 7。

select case 
  when DAYOFMONTH(order_time)%7 = 0  
       then DAYOFMONTH(order_time)/7 
       else DAYOFMONTH(order_time)/7 + 1 
  end 

推荐阅读