Usuário com melhor resposta
Converter horas para inteiro

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.
Respostas
-
Deleted
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 27 de novembro de 2017 12:25
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
-
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
- Editado Wesley Neves sexta-feira, 17 de novembro de 2017 18:48 complemento
- Sugerido como Resposta Junior Galvão - MVPMVP sábado, 18 de novembro de 2017 15:27
-
Deleted
- Sugerido como Resposta Junior Galvão - MVPMVP sábado, 18 de novembro de 2017 15:27
-
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.
-
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
-
Deleted
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 27 de novembro de 2017 12:25
-
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.
-