SUBTRAÇÃO DE 2CAMPOS DATETIME
28/01/2009
0
La vai ...
Eu tenho uma tabela com o nome PRODUTIVIDADE_PRODUCAO, eu tenho 2 campos datetime nesta tabela que são:
HORA_INI_PRODUTIVIDADE_PRODUCAO ex(2008-08-22 14:42:16.083)
HORA_FIM_PRODUTIVIDADE_PRODUCAO ex(2008-08-22 10:07:40.680)
eu preciso fazer um campo menos o outro desconciderando os milesimos de segundo...
Será que alguem poderia me ajudar, eu ja tentei de todo jeito mas não consegui... abaixo segue minhas ultima tentativa:
SELECT DISTINCT COD_CEN_CADCEN, DESCR_CEN_CADCEN, DESCR_TABCAR, HORA_FIM_PRODUTIVIDADE_PRODUCAO,
HORA_INI_PRODUTIVIDADE_PRODUCAO, (SELECT TOP 1 ((convert(varchar(23),(DATEDIFF(YEAR, HORA_INI_PRODUTIVIDADE_PRODUCAO, HORA_FIM_PRODUTIVIDADE_PRODUCAO)))) + ´-´ +
(convert(varchar(23),(DATEDIFF(MONTH, HORA_INI_PRODUTIVIDADE_PRODUCAO, HORA_FIM_PRODUTIVIDADE_PRODUCAO)))) + ´-´ +
(convert(varchar(23),(DATEDIFF(DAY, HORA_INI_PRODUTIVIDADE_PRODUCAO, HORA_FIM_PRODUTIVIDADE_PRODUCAO)))) + ´ ´ +
(convert(varchar(23),(DATEDIFF(HOUR, HORA_INI_PRODUTIVIDADE_PRODUCAO, HORA_FIM_PRODUTIVIDADE_PRODUCAO)))) + ´:´ +
(convert(varchar(23),(DATEDIFF(MINUTE, HORA_INI_PRODUTIVIDADE_PRODUCAO, HORA_FIM_PRODUTIVIDADE_PRODUCAO)))) + ´:´ +
(convert(varchar(23),(DATEDIFF(SECOND, HORA_INI_PRODUTIVIDADE_PRODUCAO, HORA_FIM_PRODUTIVIDADE_PRODUCAO)))))) DIFERENCA_TOTAL, NUM_PESS_PRODUTIVIDADE_PRODUCAO, QUANTIDADE_PRODUZIDA
FROM CADCEN, TABCAR, PRODUTIVIDADE_PRODUCAO
WHERE DATA_PRODUTIVIDADE_PRODUCAO >= 20080815 AND DATA_PRODUTIVIDADE_PRODUCAO <= 20080821
AND COD_CEN_CADCEN >= 60002
AND COD_CEN_CADCEN <= 60003
AND SERVICO_PRODUTIVIDADE_PRODUCAO = COD_TABCAR
AND LOCAL_PRODUTIVIDADE_PRODUCAO = COD_CEN_CADCEN
só que ele retorna uns valores estranhos para minuto e segundo
exemplo:
HORA FINAL HORA INICIAL
2008-10-30 12:15:00.0002008-10-30 10:33:23.950
UM MENOS O OUTRO
0-0-0 2:102:6097
FICAREI GRATO SE ALGUEM CONSEGUIR ME AJUDAR
ATENCIOSAMENTE
LUCAS ALVES
Lucasalves
Posts
26/02/2009
Signori
09/03/2009
Rprado
Vc pode fazer datafinal - datainicial e usar apenas fazer um substring para pegar as horas, porém se passar de 24 horas vai precisar fazer um esquema diferente
Abraço
09/03/2009
Gustavobretas
SELECT CONVERT(DATETIME, CONVERT(VARCHAR(19), GETDATE(), 120))
ou seja, vc controla até onde quer considerar pelo nº de caracter!
VARCHAR(19)
espero ter ajudado!
um abraço!
Clique aqui para fazer login e interagir na Comunidade :)