none
Converter horas para inteiro RRS feed

  • Pergunta

  • Olá pessoal,

    Estou tendo problemas em converter hora, calculada com base numa referência (tipo numeric(15,2)), só que está ocorrendo um erro em TESTE. Segue a consulta:

    SELECT  A.CHAPA, C.NOME, A.HORA, A.REF, 
    valor_hora = CONVERT(NVARCHAR, CONVERT(SMALLDATETIME, A.REF/24) , 108),
    hora_inteiro = convert(varchar(5), CONVERT(NVARCHAR, CONVERT(SMALLDATETIME, A.REF/24) , 108), 114),
    
    
    TESTE =  (CONVERT(VARCHAR(11),(CONVERT(NVARCHAR, CONVERT(SMALLDATETIME, A.REF/24) , 108)),114) * 3600) +
    (CONVERT(VARCHAR(11),(CONVERT(NVARCHAR, CONVERT(SMALLDATETIME, A.REF/24) , 108)),114) *60) +
    CONVERT(VARCHAR(11),(CONVERT(NVARCHAR, CONVERT(SMALLDATETIME, A.REF/24) , 108)),114)
    
    
    FROM PFFINANC A (NOLOCK)
    INNER JOIN PFUNC B (NOLOCK) ON (B.CHAPA = A.CHAPA)
    INNER JOIN PPESSOA C (NOLOCK) ON (C.CODIGO = B.CODPESSOA)
    WHERE A.REF > 0 and A.CHAPA = '04243'
    


    Erro:

    Msg 245, Level 16, State 1, Line 3
    Conversion failed when converting the varchar value '09:00:00' to data type int.

    Como posso resolver isso?

    Grato,

    Ilano.

    sexta-feira, 17 de novembro de 2017 18:08

Respostas

Todas as Respostas

  • Boa tarde,

    Considerando que a coluna Ref possua um valor equivalente a '09:00:00', qual seria o valor esperado para Teste?


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

    sexta-feira, 17 de novembro de 2017 18:43
  • Para um retorno inteiro , sendo que

    '09:00:00'  retorna  9

    '09:25:10' retorna 9

    '09:55:59'  também retorna 9 fiz dessa forma

     vc pode encapsular em uma function assim

    CREATE FUNCTION ParseTimeToInt (@variavel TIME)
    RETURNS INT
    BEGIN
        RETURN
        (
            SELECT DATEDIFF(   HOUR,
                               '2016-01-01',--pode ser qualquer dia ,mas sem horas
                               CAST(CONCAT('2016-01-01', SPACE(1), CAST(@variavel AS VARCHAR(8)))
    AS                         DATETIME)
                           )
        );
    END;

    Wesley Neves - Brasilia-DF

     
    https://wesleyneves.wordpress.com/
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"






    Wesley Neves


    sexta-feira, 17 de novembro de 2017 18:47
  • Deleted
    sexta-feira, 17 de novembro de 2017 20:29
  • Bom dia,

    Caso não haja retorno na thread, a mesma deverá ser encerrada.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 20 de novembro de 2017 11:37
    Moderador
  • Olá galera,

    Pessoal, me desculpem a demora, mas sabem como é a correria do dia-a-dia.

    Bem, primeiro quero agradecer a atenção de todos. Estamos fazendo os testes com cada um.

    José Diniz, fiz o select na tabela e o resultado foi esse:

    CODCOLIGADA CHAPA ANOCOMP MESCOMP NROPERIODO CODEVENTO DTPAGTO HORA REF VALOR VALORORIGINAL
    1 4243 2014 11 1 1 2014-11-30 00:00:00.000 5040 84.00 1463.28 0.00
    1 4243 2014 11 1 3 2014-11-30 00:00:00.000 0 9.00 153.64 0.00
    1 4243 2014 11 1 167 2014-11-30 00:00:00.000 0 0.00 1.00 0.00
    1 4243 2014 11 1 196 2014-11-30 00:00:00.000 0 9.00 153.64 0.00
    1 4243 2014 11 1 321 2014-11-30 00:00:00.000 0 9.33 243.88 0.00
    1 4243 2014 11 1 501 2014-11-30 00:00:00.000 5040 84.00 1463.28 0.00
    1 4243 2014 11 2 9 2014-11-30 00:00:00.000 0 2.00 145.17 145.17
    1 4243 2014 12 1 1 2014-12-30 00:00:00.000 5580 93.00 1620.06 0.00
    1 4243 2014 12 1 3 2014-12-30 00:00:00.000 0 9.00 170.10 0.00
    1 4243 2014 12 1 12 2014-12-30 00:00:00.000 0 0.00 58.07 0.00



    terça-feira, 21 de novembro de 2017 16:57
  • Deleted
    terça-feira, 21 de novembro de 2017 22:31
  • Bom dia,

    Por falta de retorno essa thread está encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 27 de novembro de 2017 12:25
    Moderador
  • Bom dia!

    Quanto temos de trabalhar com horas, o modo mais fácil é equaciona-la em hora centesimal.

    Abs

    quinta-feira, 14 de dezembro de 2017 13:38