Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×
AVISO AOS MEMBROS:

Fizemos uma atualização em 18/06/2023, e a forma de acesso ao Fórum mudou. Não mais está sendo aceito o login pelo Nome de Exibição cadastrado. Agora, apenas pelo email e pelos integradores de Login do Facebook, Google e Microsoft. O Facebook estava com uma validação pendente e já foi normalizado o acesso, já o Google, ainda estamos verificando o que está ocorrendo que não está funcionando.
Caso precisem de ajuda para o login pelo email acesse o link << Esqueci minha senha de acesso>> ou nos envie um pedido de ajuda pelo email admin@forumrm.com.br

Administração
ForumRM

Script de função último dia útil mês


Mensagem Adicionada por Jair - Fórmula

Veja que foi usado em uma parte no texto do script 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!!

Posts Recomendados


  • Tópicos Que Criei:  899
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.841
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.574
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Online
  • Idade:  52
  • Dispositivo:  Windows

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!! 😀

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.