none
Intervalo entre horas ( com parâmetro ) RRS feed

  • Pergunta

  • Bom dia,

    Galera, desenvolvi uma procedure  que contem um parâmetro @Data, que é a data de entrada, e possuo uma variável que é @DataInicial, a principio o cliente pediu para subtrair um dia da data, mas agora ele estipulou que os registros deveram vir com um intervalo de 24 horas a partir das 06:01 AM do parâmetro @Data até as 06:00 AM do @DataFinal, ou seja colocando o parametro @Data com a seguinte data 06/06/2013 (06:01 AM), ele ira trazer dados até 07/06/2013 (06:00 AM) , alguém poderia me ajudar a pensar em uma solução?


    USE [BD]
    GO
    /****** Object:  StoredProcedure [dbo].[sp_adicao_de_gases]    Script Date: 09/06/2013 10:24:39 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author: Magdiel Américo
    -- Create date: 28/08/2013
    -- Description: Procedimento 	
    -- exec dbo.sp_adicao_de_gases '8/27/2013'
    -- =============================================
    ALTER PROCEDURE [dbo].[sp_adicao_de_gases] @Data DATETIME
    
    AS
    BEGIN
    
    DECLARE @DataFinal DATETIME
    
    
    SET @DataFinal =  (DATEADD (DAY, -1, @Data))

    sexta-feira, 6 de setembro de 2013 13:30

Respostas

  • Amigo,

    Sua pergunta está meio confusa, mas acredito que eu tenha entendido...veja se a solução abaixo lhe ajuda:

    SET @DataFinal =  (DATEADD (MI, +1, @DataFinal))

    Nesse caso ele vai pegar o valor da @DATFINAL e adicionar 1 minuto, se chegar "2013-09-06 11:08:14.750" ele vai adicionar 1 minuto "2013-09-06 11:09:14.750".

    Espero ter ajudado e boa sorte!


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    sexta-feira, 6 de setembro de 2013 14:09

Todas as Respostas

  • Amigo,

    Sua pergunta está meio confusa, mas acredito que eu tenha entendido...veja se a solução abaixo lhe ajuda:

    SET @DataFinal =  (DATEADD (MI, +1, @DataFinal))

    Nesse caso ele vai pegar o valor da @DATFINAL e adicionar 1 minuto, se chegar "2013-09-06 11:08:14.750" ele vai adicionar 1 minuto "2013-09-06 11:09:14.750".

    Espero ter ajudado e boa sorte!


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    sexta-feira, 6 de setembro de 2013 14:09
  • Obrigado amigo, 

    Antes de ver sua resposta eu consegui encontrar a solução, mas obrigado pela resposta. Que é a certa!

    Ficou assim o código.

    '2/03/2013' -- @Data
    SET @DataInicial =  (DATEADD (MINUTE, 361, @Data)) 
    SET @DataFinal = (DATEADD (MINUTE, 1439, @DataInicial))
    (12 row(s) affected)
    
    (56 row(s) affected)
    Warning: Null value is eliminated by an aggregate or other SET operation.
    
    (3 row(s) affected)
    Feb  3 2013  6:01AM
    Feb  4 2013  6:00AM



    • Editado USER65466785673453 sexta-feira, 6 de setembro de 2013 14:14 Esqueci o Parâmetro
    sexta-feira, 6 de setembro de 2013 14:12