none
Conversão de float para o formato hh:mm:ss RRS feed

  • Pergunta

  • Eu estou fazendo uma pagina de relatório para extrair informações do Fireman que é um sistema de abertura de chamado.
    Eu tenho uma coluna chamada temposuspenso e preciso converte para exibir o tempo que o chamado esta suspenso.
    Preciso que fique no formato hh:mm:ss (mesmo que ultrapasse 24hs).
    Como eu não posso converte para time eu tentei da seguinte forma:
    convert(varchar(10), temposuspenso, 108),
    que me retornou 0.0028858.

    Grato,

    terça-feira, 13 de agosto de 2013 17:16

Respostas

  • Basta fazer:


    Convert(varchar,DATEADD(second,temposuspenso,convert(datetime,0)),108)

    Voce podeira executar novamente a query, mas adicionando o campo temposuspenso ?

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    • Marcado como Resposta Fabrício MD quinta-feira, 15 de agosto de 2013 14:58
    quarta-feira, 14 de agosto de 2013 15:51
    Moderador

Todas as Respostas

  • Qual é o tipo de temposuspenso ?

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    terça-feira, 13 de agosto de 2013 17:21
    Moderador
  • Float.
    terça-feira, 13 de agosto de 2013 20:22
  • E o que ele armazena? Tempo em segundos?? minutos?? horas???


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    terça-feira, 13 de agosto de 2013 21:12
    Moderador
  • Boa pergunta.
    É um sistema chamado Fireman que eles deixam aberto para outras pessoas, façam sistema de relatório.
    Toda coluna de tempo, esta armazenada como float. Converteram e jogaram lá.
    Eu acabei usando o datepart e agora eu vou precisar subtrair o tempo de abertura pelo tempo suspenso porque quando o chamado fica suspenso, não deve contar SLA.

    Fiz assim:

    convert(varchar,(datepart(dd, tempoutil) * 24) + datepart(hh, tempoutil) ) + ':' + 
    convert(varchar,datepart(mm, tempoutil)) + ':' +
    convert(varchar,datepart(ss, tempoutil)) as TempoSuspenso,
    Obrigado.
    quarta-feira, 14 de agosto de 2013 13:28
  • Se for realmente o tempo convertido entao bastaria fazer:

    convert(datetime, temposuspenso)

    Agora se for o tempo em segundos (por exemplo), entao vc tera que fazer:

    DATEADD(second,tempo,convert(datetime,0))

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    quarta-feira, 14 de agosto de 2013 13:36
    Moderador
  • Obrigado pela ajuda, mas eu já havia tentado com a primeira opção e ao tentar da segunda forma retornou a informação do print conforme anexo.
    No meu caso, eu preciso que seja sem a data.
    Somente hh:mm:ss
    Obrigado.



    A coluna em negrito é a informação que retornou do código que você me passou.
    Grato,

    quarta-feira, 14 de agosto de 2013 15:33
  • Basta fazer:


    Convert(varchar,DATEADD(second,temposuspenso,convert(datetime,0)),108)

    Voce podeira executar novamente a query, mas adicionando o campo temposuspenso ?

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    • Marcado como Resposta Fabrício MD quinta-feira, 15 de agosto de 2013 14:58
    quarta-feira, 14 de agosto de 2013 15:51
    Moderador
  • Obrigado.
    Funcionou conforme print.
    A coluna temposuspenso já existe.
    Estou fazendo testes mas me parece esta certo.
    Obrigado.
    quinta-feira, 15 de agosto de 2013 13:41