Pesquisar na Comunidade
Mostrando resultados para as tags ''util''.
Encontrado(s) 1 registro
-
Script de função último dia útil mês
Jair - Fórmula postou um tópico no fórum [RM] Scripts SQL e Bancos de Dados
Script com função para montagem de data com último dia útil do mês, considerando a tabela de feriados do RM, ou seja, se o último dia do mês cair em algum feriado cadastrado no RM, retorna o dia útil anterior.Para o caso de usar versão do SQL mais antiga, onde não existe a função EOMONTH(). É só comentar a linha em questão que usa essa função do SQL Server deixando a outra. Mantenha a que preferir usar... If OBJECT_ID (N'dbo.fnc_UltDiaUtilRM' ) is not null Drop Function dbo.fnc_UltDiaUtilRM; Go Create Function dbo.fnc_UltDiaUtilRM (@DataBase DateTime) Returns Date as Begin Declare @UltDia Date Declare @CalendOficial Varchaaaar(10) Set @CalendOficial = '0000001' -- Código do Calendário Oficial a ser usado do RM -- Usando a Função EOMONTH que funciona para o SQL 2012 em diante... Set @UltDia = EOMONTH(@DataBase) -- Usando a Função DateAdd apenas para montar o último dia do mês, que funciona para o SQL 2008 e mais atuais... Set @UltDia = DATEADD(dd, -DAY(DATEADD(M, 1, @DataBase)), DATEADD(M, 1, @DataBase)) inicio: If ( Select DiaFeriado From GFeriado (nolock) Where DiaFeriado = @UltDia and CodCalendario = @CalendOficial ) is not null Begin Set @UltDia = DateAdd(d, -1, @UltDia) End if (Select DatePart(dw, @UltDia)) in (1, 7) or ( Select DiaFeriado From GFeriado (nolock) Where DiaFeriado = @UltDia and CodCalendario = @CalendOficial ) is not null Begin Set @UltDia = DateAdd(d, -1, @UltDia) goto inicio End Return(@UltDia) End Go -- Exemplo de utilização Select dbo.fnc_UltDiaUtilRM (Getdate()) Exemplo de utilização Select dbo.fnc_UltDiaUtilRM (Getdate()) **** Veja que foi usado em uma parte no texto acima o VARCHAAAAR e não o nome correto, pois, há um bloqueio de segurança para evitar códigos maliciosos que façam ataques no fórum. Então, apenas enviando em arquivo, ou trocando essa palavra desta forma que fiz. Ao copiar e passar para seu ambiente, sempre deverá corrigir para o termo correto!!