Поиск недели месяца по дате в блоках данных SQL

Я пытаюсь получить week_of_the_month из даты в databricks sql

Вот мой SQL:

      with date as (
  select EXTRACT(DAY FROM '2017-01-01') as day
)

select case
       when day < 8 then '1'
       when day < 15 then '2'
       when day < 22 then '3'
       else '4'
       end as week_of_month

Вышеприведенный sql терпит неудачу в некоторых крайних случаях. Например 2010-03-31, то week_of_month = 5

Как найти неделю_из_месяца в блоках данных SQL?

1 ответ

Как вы выразились, вы бы добавили еще один whenпункт

      select case
         when day < 8 then '1'
         when day < 15 then '2'
         when day < 22 then '3'
         when day < 29 then '4'   --> new
         else '5'                 --> modified
       end as week_of_month
Другие вопросы по тегам