none
Conversão de data RRS feed

  • Pergunta

  • Estou usando
     SELECT
    registro,convert(datetime,execucoes_data_0,104)
    ,(registro -  convert(datetime,execucoes_data_0,104))

    return 
    1900-01-01 02:50:01.000
    1899-12-31 23:45:42.000
    1899-12-17 04:31:49.667
    1899-12-23 09:55:08.930

    preciso do retorno em horas,mm,ss:sss e não consigo e detalhe temos registros que passan de 24 horas ele subtriai em dias, preciso que seja no formato horas,mm,ss:sss mesmo maior que 24hr

    Alguém já passou por isso testei várias maneiras e não consegui


    sábado, 19 de dezembro de 2020 15:16

Respostas

  • Boa noite,

    Acho que vai ser necessário fazer a conversão do resultado para varchar para poder apresentar as horas acima de 24. Ex:

    with CTE_Calc as
    (
      SELECT
        registro,
        convert(datetime, execucoes_data_0, 104) as execucoes_data,
        registro - convert(datetime, execucoes_data_0, 104) as diferenca
      FROM --...
    )
    
    SELECT
      registro,
      execucoes_data,
      convert(varchar(10), DATEDIFF(DAY, 0, diferenca) * 24 + DATEPART(HOUR, diferenca)) +
      RIGHT(convert(char(12), getdate(), 114), 10) 
    FROM CTE_Calc

    Espero que ajude


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

    • Marcado como Resposta claudiof terça-feira, 22 de dezembro de 2020 14:20
    sábado, 19 de dezembro de 2020 22:04

Todas as Respostas

  • Boa noite,

    Acho que vai ser necessário fazer a conversão do resultado para varchar para poder apresentar as horas acima de 24. Ex:

    with CTE_Calc as
    (
      SELECT
        registro,
        convert(datetime, execucoes_data_0, 104) as execucoes_data,
        registro - convert(datetime, execucoes_data_0, 104) as diferenca
      FROM --...
    )
    
    SELECT
      registro,
      execucoes_data,
      convert(varchar(10), DATEDIFF(DAY, 0, diferenca) * 24 + DATEPART(HOUR, diferenca)) +
      RIGHT(convert(char(12), getdate(), 114), 10) 
    FROM CTE_Calc

    Espero que ajude


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

    • Marcado como Resposta claudiof terça-feira, 22 de dezembro de 2020 14:20
    sábado, 19 de dezembro de 2020 22:04
  • Boa noite,

    Acho que vai ser necessário fazer a conversão do resultado para varchar para poder apresentar as horas acima de 24. Ex:

    with CTE_Calc as
    (
      SELECT
        registro,
        convert(datetime, execucoes_data_0, 104) as execucoes_data,
        registro - convert(datetime, execucoes_data_0, 104) as diferenca
      FROM --...
    )
    
    SELECT
      registro,
      execucoes_data,
      convert(varchar(10), DATEDIFF(DAY, 0, diferenca) * 24 + DATEPART(HOUR, diferenca)) +
      RIGHT(convert(char(12), getdate(), 114), 10) 
    FROM CTE_Calc

    Espero que ajude


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

    Claudio,

    Vale ressaltar que a função Convert() nos permite utilizar diversos tipos de formatadores de estilos de apresentação de valores, os quais são aplicados somente no tratamento do dados para ser evidenciado em tela seja diretamente no Management Studio ou na sua aplicação.

    Caso queira saber mais sobre estes formatadores de estilo, acesse a documentação oficial das funções Convert() e Cast()



    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    domingo, 27 de dezembro de 2020 12:34
  • Boa noite,

    Acho que vai ser necessário fazer a conversão do resultado para varchar para poder apresentar as horas acima de 24. Ex:

    with CTE_Calc as
    (
      SELECT
        registro,
        convert(datetime, execucoes_data_0, 104) as execucoes_data,
        registro - convert(datetime, execucoes_data_0, 104) as diferenca
      FROM --...
    )
    
    SELECT
      registro,
      execucoes_data,
      convert(varchar(10), DATEDIFF(DAY, 0, diferenca) * 24 + DATEPART(HOUR, diferenca)) +
      RIGHT(convert(char(12), getdate(), 114), 10) 
    FROM CTE_Calc

    Espero que ajude


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

    Claudio,

    Vale ressaltar que a função Convert() nos permite utilizar diversos tipos de formatadores de estilos de apresentação de valores, os quais são aplicados somente no tratamento do dados para ser evidenciado em tela seja diretamente no Management Studio ou na sua aplicação.

    Caso queira saber mais sobre estes formatadores de estilo, acesse a documentação oficial das funções Convert() e Cast()



    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    domingo, 27 de dezembro de 2020 12:36