Como criar uma tabela com os feriados (nacionais, estaduais e móveis) no SQL Server

Como criar uma tabela com os feriados (nacionais, estaduais e móveis) no SQL Server
Avalie esse post

Olá Pessoal,
Boa tarde.

Neste post rápido, irei demonstrar como criar uma tabela com os feriados nacionais, estaduais e móveis do Brasil. Essa tabela é muito útil para identificar se uma determinada data é feriado ou não, e também é um pré-requisito para a criação da tabela de dias úteis do post Como calcular dias úteis no SQL Server.

Uma outra solução para esse problema, é utilizando OLE Automation ou CLR, consultando a API do site calendario.com.br, que retorna os feriados nacionais, estaduais, municipais e facultativos. Para saber mais sobre essa solução, acesse o post SQL Server – Como consultar os feriados nacionais, estaduais, municipais e facultativos de uma API utilizando OLE Automation e CLR (C#).

Gerando a carga dos dados

O código abaixo irá criar a tabela Feriado, e populá-la com os feriados nacionais, estaduais e móveis (Carnaval, Paixão de Cristo e Corpus Christi).

Visualizar código-fonte

Após executar a procedure (EXEC dbo.stpGera_Feriados), você terá esses resultados:

Feriados no ES em 2015

SQL Server - Feriados ES_2

Feriados no RJ em 2016

SQL Server - Feriados RJ_2

É isso aí,
Até o próximo post, onde falarei sobre cálculos com dias úteis (SPOILER).

SQL, sql server, sql server 2008, sql server 2008 R2, Oracle, Oracle Database, Oracle 11g, Oracle 10g, Oracle 12c, MySQL, Firebird, Consultoria, Consultor, Programador, Programação. Desenvolvedor, Analista de Sistemas, DBA, Criação de website, Criação de Sistema Web, Vitória, Vila Velha, Guarapari, Espírito Santo, ES, Consultoria SQL em VItória, Treinamento, Curso, Prestação de serviço, prestar serviço, freelancer, freela, banco de dados, consultoria em banco de dados, consultor de banco de dados

10 Comments

  1. Oi, Dirceu! Tudo bem? Usei seu algoritmo aqui adaptado pro MySQL. Vi que você usou o Algoritmo de Gauss pra determinar o feriado de Páscoa, mas em um momento (2013), ele calcula que cai em 2013-04-0 (dia 0). Normalmente, eu trataria este caso pra cair dia 2013-03-31, mas não vi você comentando sobre isso. Aconteceu com você também? Chegou a testar o programa? Muito obrigado, o código está muito bom! Abs!

    1. Diêuler,
      Obrigado pelo feedback.

      Testei sim, no ano de 2013, esse código informa que a páscoa foi no dia 31/03/2013, que está correto.

      Será que esse problema não ocorreu na conversão do código pro MySQL ? Se puder, disponibiliza ele no pastebin.com e envia aqui pra gente analisar.

      Abraço!

      1. Boa tarde Dirceu!

        Utilizo o SQL Server 2008 R2 como BD e o Management Studio 2014. Sobre os erros são vários como por exemplo: conversão de dados; inserção de valor null não permitido; Violação de restrição Primary Key. Caso queira posso enviar o resultado completo ao Executa-la de outra forma.

Deixe uma resposta