Calcular DATETIME
Amigos
Tenho o seguinte select:
Como faço pra calcular a diferença entre os campos INI_PAUSA e FIM_PAUSA?
Num raciocínio primário eu fiz, mas não exibe o resultado em HH:MM:SS.
O banco é INTERBASE.
Obrigado!
Tenho o seguinte select:
SELECT OPERADOR, DATA, SEQUENCIA, NUMERO, MOTIVO, INI_PAUSA, FIM_PAUSA FROM OPEPAUSA
Como faço pra calcular a diferença entre os campos INI_PAUSA e FIM_PAUSA?
Num raciocínio primário eu fiz
SUM(FIM_PAUSA - INI_PAUSA) AS TOTAL_PAUSA
O banco é INTERBASE.
Obrigado!
Elton Ésqui
Curtidas 0
Respostas
Eriley Barbosa
27/08/2010
Já tentou sem o sum
SELECT OPERADOR, DATA, SEQUENCIA, NUMERO, MOTIVO, INI_PAUSA, FIM_PAUSA, CAST((FIM_PAUSA - INI_PAUSA) AS TIME) TOTAL_PAUSA FROM OPEPAUSA
GOSTEI 0
Elton Ésqui
27/08/2010
Gerou erro: SQL Server Error: ORA-00932: tipos de dados inconsistentes: esperava TIME obteve DATE JULIAN
Aí se eu coloco gera o erro:
SQL Server Error: ORA-00907: parêntese direito não encontrado.
Mas os (()) estão todos lá!!!
Aí se eu coloco
CAST((FIM_PAUSA - INI_PAUSA) AS DATE JULIAN) AS TOTAL_PAUSA
SQL Server Error: ORA-00907: parêntese direito não encontrado.
Mas os (()) estão todos lá!!!
GOSTEI 0
Eriley Barbosa
27/08/2010
Os dois campos são time, tente assim:
(FIM_PAUSA - INI_PAUSA) TOTAL_PAUSA
e veja o que retorna
ou utiliza o convert, gostaria que passa-se os tipos de campo de FIM_PAUSA e INI_PAUSA
CONVERT (time, (FIM_PAUSA - INI_PAUSA)) TOTAL_PAUSA
GOSTEI 0
Elton Ésqui
27/08/2010
O primeiro retorna 0.0417824074074074
O campo é DATETIME
Convert não funcionou :(
Pelo que pesquisei a leitura é: DD/MM/YYYY, HH:MM:SS
Com isso é possível calcular quando virar o dia e trazer o tempo certo.
O campo é DATETIME
Convert não funcionou :(
Pelo que pesquisei a leitura é: DD/MM/YYYY, HH:MM:SS
Com isso é possível calcular quando virar o dia e trazer o tempo certo.
GOSTEI 0
Eriley Barbosa
27/08/2010
CONVERT (time, FIM_PAUSA) - CONVERT (time, INI_PAUSA) TOTAL_PAUSA
ou
CONVERT (time, FIM_PAUSA, 8) - CONVERT (time, INI_PAUSA, 8) TOTAL_PAUSA
GOSTEI 0
Elton Ésqui
27/08/2010
Retornou um errinho
Mensagem: SQL Server Error: Token unknown - line 9, char 13 ,.
Mensagem: SQL Server Error: Token unknown - line 9, char 13 ,.
GOSTEI 0
Eriley Barbosa
27/08/2010
Coloque o sql completo aqui.
GOSTEI 0
Elton Ésqui
27/08/2010
Voi lá...
SELECT OPEPAUSA.OPERADOR, OPEPAUSA.DATA, OPEPAUSA.SEQUENCIA, OPEPAUSA.NUMERO, OPEPAUSA.MOTIVO, OPEPAUSA.INI_PAUSA, OPEPAUSA.FIM_PAUSA, CONVERT(time, FIM_PAUSA) - CONVERT(time, INI_PAUSA) AS TOTAL_PAUSA FROM OPEPAUSA
GOSTEI 0
Eriley Barbosa
27/08/2010
SELECT
OPEPAUSA.OPERADOR,
OPEPAUSA.DATA,
OPEPAUSA.SEQUENCIA,
OPEPAUSA.NUMERO,
OPEPAUSA.MOTIVO,
OPEPAUSA.INI_PAUSA,
OPEPAUSA.FIM_PAUSA,
(CONVERT(time, OPEPAUSA.FIM_PAUSA) - CONVERT(time, OPEPAUSA.INI_PAUSA)) AS TOTAL_PAUSA
FROM
OPEPAUSA ou assim SELECT
OPEPAUSA.OPERADOR,
OPEPAUSA.DATA,
OPEPAUSA.SEQUENCIA,
OPEPAUSA.NUMERO,
OPEPAUSA.MOTIVO,
OPEPAUSA.INI_PAUSA,
OPEPAUSA.FIM_PAUSA,
(CONVERT(time, OPEPAUSA.FIM_PAUSA, 8) - CONVERT(time, OPEPAUSA.INI_PAUSA, 8)) AS TOTAL_PAUSA
FROM
OPEPAUSA
OPEPAUSA.OPERADOR,
OPEPAUSA.DATA,
OPEPAUSA.SEQUENCIA,
OPEPAUSA.NUMERO,
OPEPAUSA.MOTIVO,
OPEPAUSA.INI_PAUSA,
OPEPAUSA.FIM_PAUSA,
(CONVERT(time, OPEPAUSA.FIM_PAUSA) - CONVERT(time, OPEPAUSA.INI_PAUSA)) AS TOTAL_PAUSA
FROM
OPEPAUSA ou assim SELECT
OPEPAUSA.OPERADOR,
OPEPAUSA.DATA,
OPEPAUSA.SEQUENCIA,
OPEPAUSA.NUMERO,
OPEPAUSA.MOTIVO,
OPEPAUSA.INI_PAUSA,
OPEPAUSA.FIM_PAUSA,
(CONVERT(time, OPEPAUSA.FIM_PAUSA, 8) - CONVERT(time, OPEPAUSA.INI_PAUSA, 8)) AS TOTAL_PAUSA
FROM
OPEPAUSA
GOSTEI 0