1
resposta

O BigQuery tem um banco de dias feriados?

No exercicio do curso "Google BigQuery: dominando Strings e Data", aula 4 video 10, se eu quiser pegar o primeiro dia util apos um determinado periodo, teria como:

A) Pegar a seguinte segunda feira, se o calculo resultar em sabado ou domingo, e B) Pular um dia, se cair em feriado?

Para a pergunta B, pensei em ter uma tabela com os feriados e fazer a seleção dai com um CASE, mas me perguto se o BigQuery ja tem isso em alguma função incorporada.

Obrigado

1 resposta

Oi Pablo, tudo bem?

Para pegar a seguinte segunda-feira se o cálculo resultar em sábado ou domingo, você pode usar a função CASE combinada com EXTRACT para verificar o dia da semana. Você pode tentar o seguinte código:

SELECT 
  CASE 
    WHEN EXTRACT(DAYOFWEEK FROM sua_data) = 7 THEN DATE_ADD(sua_data, INTERVAL 2 DAY)  -- Se for sábado
    WHEN EXTRACT(DAYOFWEEK FROM sua_data) = 1 THEN DATE_ADD(sua_data, INTERVAL 1 DAY)  -- Se for domingo
    ELSE sua_data
  END AS primeiro_dia_util
FROM sua_tabela

Para pular um dia se cair em feriado, a sua ideia de ter uma tabela com os feriados é ótima!Mas, ielizmente, o BigQuery não possui uma função incorporada que já saiba os feriados. Você precisará criar uma tabela de feriados e então fazer uma junção com a sua tabela de datas para verificar se a data calculada é um feriado.

Espero ter ajudado.

Qualquer dúvida, não hesite em compartilhar no fórum.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado