Рассчитать дни в месяце для високосного года - PullRequest
0 голосов
/ 18 марта 2020

Извините за еще один вопрос, связанный с датой, но я не смог найти пост, который касается этого. Я пытаюсь добавить столбец в мою таблицу дат, который показывает количество дней в каждом месяце и имеет этот дескриптор для високосного года - ниже мой прогресс:

case when
Date like '01%' then '31'
Date like '02%' and  then ''
Date like '03%' then '31'
Date like '04%' then '30'
Date like '05%' then '31'
Date like '06%' then '30'
Date like '07%' then '31'
Date like '08%' then '31'
Date like '09%' then '30'
Date like '10%' then '31'
Date like '11%' then '30'
Date like '12%' then '31'

end as DAYS_IN_MONTH

Ответы [ 2 ]

1 голос
/ 18 марта 2020

Если у вас есть дата, то вы можете использовать:

select date_part(day, last_day(datecol))
0 голосов
/ 18 марта 2020

- создание серии с датами

with base_table as 
(
select
  dateadd(day, '-' || seq4(), current_date()) as dte
from
  table
    (generator(rowcount => 1095))
  )

- подсчет дней в месяце после группировки

SELECT count(*) as days_in_month,
         date_trunc('Month',dte) as month
  FROM base_table
  -- Filter here for necessary days
  where dte between '2019-01-01' and '2019-12-31'
  GROUP BY 2

- присоединитесь к этой таблице за своим столом

...