Sql 在黑斑羚中找到一周

Sql 在黑斑羚中找到一周,sql,impala,hue,Sql,Impala,Hue,我想在黑斑羚上打印2020-03-01是在3月的第一周。 这在黑斑羚身上怎么可能?我只找到了weekofyear()。我找到了 ceil(cast(substr(ingestion_date,7,2) as int)/7) as wmonth 我采取的步骤是: 子字符串日期以仅获取日期 将其转换为int 除以7 结果 如果“每月的一周”是指第一周是第1-7天,第二周是第8-14天,依此类推,那么您可以使用: select ceiling( day(ingestion_date) / 7.0

我想在黑斑羚上打印2020-03-01是在3月的第一周。 这在黑斑羚身上怎么可能?我只找到了weekofyear()。

我找到了

ceil(cast(substr(ingestion_date,7,2) as int)/7) as wmonth
我采取的步骤是:

  • 子字符串日期以仅获取日期
  • 将其转换为int
  • 除以7
  • 结果
如果“每月的一周”是指第一周是第1-7天,第二周是第8-14天,依此类推,那么您可以使用:

select ceiling( day(ingestion_date) / 7.0 ) as week_of_month

类似于:
weekofyear(column)-weekofyear(YEAR(column)+MONTH(column)+“1”)+1
@jarlh谢谢你的回答。尽管出现了这种情况:算术运算需要数字操作数。我不确定黑斑羚是否能理解+'1'并将其视为伪代码。我不知道如何“建立”一月份的第一个日期。是的,确实如此,我认为这与我上面的答案是一样的。@DrGenius。这应该会产生同样的结果。但是,它不需要将日期转换为字符串,也不使用隐式转换为int,并且只使用算术和适当的
date
函数。