none
Conversão de valores RRS feed

  • Pergunta

  • Olá pessoal.
    Estou com problemas na conversão de dados de uma coluna float.
    Eu tenho um sistema fechado e esse sistema tem uma coluna chamada tempoutil e eu preciso fazer o calculo do que sobrou das horas e converte para minuto.
    Grato,
    SELECT cast((tempoutil * 24)as int) as 'Hora',
    cast(((((tempoutil * 24) % 86400 ) % 3600 ) / 60 ) as varchar(3)) as 'M', 
     tempoutil * 24 as 'TempoUtil_em_Float' 
      FROM Chamado where codprojeto = 3 and codchamado = 476

    quarta-feira, 15 de maio de 2013 15:37

Respostas

  • Obrigado pelo interrese em ajudar Fabrizzio.
    É estranho isso, mais é SQL Server 2008 R2.
    Eu até dei uma pesquisada no site da microsoft sobre os tipos de valores do sql server 2008.
    Dessa vez, eu resolvi da seguinte forma:

    selecet convert(varchar(10),datepart(hh,chamado.tempoutil),108) + ':' + convert(varchar(10),datepart(mi,chamado.tempoutil),108) as 'TEMPOUTIL'
    from chamado

    Obrigado.
    • Marcado como Resposta Fabrício MD terça-feira, 21 de maio de 2013 20:06
    terça-feira, 21 de maio de 2013 20:06

Todas as Respostas

  • Deleted
    quarta-feira, 15 de maio de 2013 17:02
  • Obrigado.
    Acabei usando o Datepart.
    Achei estranho o pessoal que desenvolveu esse sistema armazenar em float.
    Fiz da seguinte forma:
    SELECT datepart(hh, tempoutil ) as 'Hora', 
    datepart(mi, tempoutil ) as 'Minutos' 
    from chamado  where codprojeto = 3 and codchamado = 476
    
    Estranho que esta dando diferença de 1 minuto mas isso ai, deixa quieto.

    Abraços.
    Fica com Deus.
    • Marcado como Resposta Fabrício MD quarta-feira, 15 de maio de 2013 18:27
    • Não Marcado como Resposta Fabrício MD terça-feira, 21 de maio de 2013 18:49
    quarta-feira, 15 de maio de 2013 18:24
  • Olá José.
    Me desculpe mas tentei da forma que vc ensinou e deu erro.

    Type time is not a defined system type.
    O tempo util é hora, minuto e segundo que foi convertido para float e ficou assim.
    Como eu disse anteriormente, eu estou extraido dados de um sistema pronto que não fui eu que desenvolve.
    Obrigado.

    terça-feira, 21 de maio de 2013 18:49
  • Fabricio,

    O tipo de dados TIME esta disponivel apenas no SQL Server 2008 ou superior, assim como o tipo de dados DATE. Qual a versão do SQL que esta trabalhando?


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    ITIL V3 Foundation
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Email: fabrizzio.antoniaci@gmail.com

    terça-feira, 21 de maio de 2013 18:51
    Moderador
  • Obrigado pelo interrese em ajudar Fabrizzio.
    É estranho isso, mais é SQL Server 2008 R2.
    Eu até dei uma pesquisada no site da microsoft sobre os tipos de valores do sql server 2008.
    Dessa vez, eu resolvi da seguinte forma:

    selecet convert(varchar(10),datepart(hh,chamado.tempoutil),108) + ':' + convert(varchar(10),datepart(mi,chamado.tempoutil),108) as 'TEMPOUTIL'
    from chamado

    Obrigado.
    • Marcado como Resposta Fabrício MD terça-feira, 21 de maio de 2013 20:06
    terça-feira, 21 de maio de 2013 20:06
  • Deleted
    quarta-feira, 22 de maio de 2013 01:09
  • Deleted
    quarta-feira, 22 de maio de 2013 01:23
  • Obrigado pela ajuda José.
    quarta-feira, 22 de maio de 2013 14:42