none
Problema ao contar os dias uteis RRS feed

  • Pergunta

  • Amigos tenho a seguinte sintaxe para contar os dias uteis mais necessito excluir todos os dias do mês de julho pois estou trabalhando em um calendário escolar e não sei como fazer essas modificações pois o código abaixo foi oferecido por amigo do grupo

    USE [BANCAO]
    GO

    /****** Object:  UserDefinedFunction [dbo].[FN_GetDiasUteis]    Script Date: 12/10/2012 10:35:19 ******/
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    CREATE function [dbo].[FN_GetDiasUteis2] (@DateStart Datetime , @DateEnd Datetime)  
    RETURNS Int  
    AS  
    BEGIN  
     Declare @Count Int  
     Select @Count = 0
    While @DateStart <= @DateEnd  
     Begin  
      If DatePart(WeekDay, @DateStart) Not In (7,1)
          Select @Count = @Count + 1 
        Select @DateStart = Dateadd(day,1,@DateStart)
        
    End  
     RETURN  @Count 
    END



    GO


    Tancredo Almeida

    segunda-feira, 10 de dezembro de 2012 14:02

Respostas

Todas as Respostas

  • Boa tarde,

    Experimente alterar o If para adicionar mais uma condição:

    If DatePart(WeekDay, @DateStart) Not In (7,1) and
       Month(@DateStart) <> 7

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Tancredo Almeida segunda-feira, 10 de dezembro de 2012 19:57
    segunda-feira, 10 de dezembro de 2012 14:10
  • Funciou mais vc poderia me explicar essa adição na formula

    Tancredo Almeida

    segunda-feira, 10 de dezembro de 2012 14:38
  • No trecho que tem o código abaixo, ele informa que o mês referente a @DateStart é diferente de 7. a Função Month() retorna o mês para uma data passada como parâmetro.
    Month(@DateStart) <> 7

    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    segunda-feira, 10 de dezembro de 2012 15:02
  • Tancredo,

    Você consegui contar os dias e identificar os que são utéis?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    segunda-feira, 10 de dezembro de 2012 17:22
  • Sim. Obrigado pela ajuda.

    Tancredo Almeida

    segunda-feira, 10 de dezembro de 2012 19:56