none
DateTime - Acrescentar horas RRS feed

  • Pergunta

  • Pessoal, bom dia.

     

    Tenho um problema que é simples, mas não consegui achar aqui no Forum.

     

    Tenho uma variável datetime que tem uma data qualquer (@dtExecutionEnd). Gostaria de definir nessa data que recebi a hora '23:59:59'. Como faço isso?

     

    Lembrando que o Update é só na data.

     

    Obrigado e um abraço a todos.

    sexta-feira, 4 de janeiro de 2008 15:42

Todas as Respostas

  • Boa tarde Binhoalvez,

     

    Não entendi muito bem. Vc quer colocar a hora fixa!?!? Sempre '23:59:59' ???

     

     

    sexta-feira, 4 de janeiro de 2008 15:56
  • Boa Tarde,

     

    Não sei se é bem o que você deseja, mas dê uma olhada no código (postei duas soluções):

     

    Code Block

    UPDATE Tabela SET Campo = 'Sua Data 23:59:59'

    SET DATEFORMAT YMD

    UPDATE Tabela SET Campo = CAST(

    CAST(CHAR(4),YEAR(SuaData)) + '-' +

    CAST(VARCHAR(2),MONTH(SuaData)) + '-' +

    CAST(VARCHAR(2),DAY(SuaData)) + ' 23:59:59' AS DATETIME)

     

     

     

    [ ]s,

     

    Gustavo

    sexta-feira, 4 de janeiro de 2008 16:10
  • Boa tarde, Chapolin...tudo bom?

     

    Essa variável é de uma stored procedure. A procedure recebe essa variável com uma data, mas com as horas 00:00:00. Quero mudar as horas dessa variável para '23:59:59'. Eu gostaria de saber como faço isso.

     

    Obrigado,

    sexta-feira, 4 de janeiro de 2008 16:13
  • BinhoAlves,

     

    Seguem dois exemplos para o seu caso. Se não entender ou não ajudar pode postar que ajudo/explico tudinho.

     

    Abraço,

     

    chapolin.rio@gmail.com

     

     

     

    --EXEMPLO PARA UPDATE EM TODA A TABELA

     

    CREATE TABLE #TESTE

    (

    DATA DATETIME

    )

     

    --INSERT INTO #TESTE VALUES(CONVERT(VARCHAR(8),GETDATE(),112) + '23:59:59')

    INSERT INTO #TESTE VALUES(GETDATE())

    INSERT INTO #TESTE VALUES(GETDATE())

    INSERT INTO #TESTE VALUES(GETDATE())

    INSERT INTO #TESTE VALUES(GETDATE())

     

    UPDATE #TESTE

    SET DATA = (CONVERT(VARCHAR(8),DATA,112) + ' 23:59:59')

     

    select * from #TESTE

    DROP TABLE #TESTE

     

     

    --EXEMPLO PARA MUDAR APENAS O PARÂMETRO

    DECLARE @DATA AS DATETIME

     

    --VAI RECEBER ASSIM

    SET @DATA = '2008-01-01 00:00:00'

     

    --MUDANDO PARA O SEU CASO

    SET @DATA = (CONVERT(VARCHAR(8),@DATA,112) + ' 23:59:59')

     

    --MOSTARNDO AS DATAS

    SELECT @DATA

    sexta-feira, 4 de janeiro de 2008 16:18
  •  

    veja este exemplo

     

    Declare @Data Datetime

    Set @Data = '2007-01-01'

     

     

    Select DateAdd(N,-1,DateAdd(Day,1,@Data))

     

    Abs;

     

    sexta-feira, 4 de janeiro de 2008 16:20