PostgreSQL - Restar horas

 
Vista:
sin imagen de perfil
Val: 39
Ha aumentado 1 puesto en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Restar horas

Publicado por José Vicente (28 intervenciones) el 13/10/2019 13:46:49
Hola de nuevo, ¿Cómo puedo restar dos horas?, teniendo en cuenta que una es la mayor y la otra es la menor de ese grupo. Tengo la query en Firebird pero en Postgresql con las funciones de tiempo me hago un lio.
Mi query en firebird es:
1
SELECT datediff(minute,CAST(MIN(tiempo)AS time), cast(MAX(tiempo)AS time)) as diferencia, recorrido FROM datos WHERE recorrido = 'nombre_recorrido' GROUP BY recorrido"
¿Alguien puede echarme un cable?. Gracias. Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Francisco
Val: 256
Oro
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Restar horas

Publicado por Francisco (110 intervenciones) el 14/10/2019 17:35:02
Hola

1
2
3
4
5
6
SELECT
	recorrido,
	MAX(tiempo::time) - MIN(tiempo::time) AS diferencia
FROM datos
WHERE recorrido = 'nombre_recorrido'
GROUP BY "recorrido"

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 39
Ha aumentado 1 puesto en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Restar horas

Publicado por José Vicente (28 intervenciones) el 14/10/2019 18:21:38
Hola, resulta que estoy usando la query en Vb.net, por lo que le paso en nombre_recorrido el valor de un textbox pero cuando lo intento ejecutar me da error.
1
Npgsql.PostgresException: '42601: error de sintaxis en o cerca de «GROUP»'
El código de Vb.net queda:
1
tiempoSQL = "SELECT	recorrido, MAX(tiempo::time) - MIN(tiempo::time) AS diferencia FROM datos WHERE recorrido = '" & Ruta_cbox.Text & "' ORDER BY tiempo ASC GROUP BY " & "datos.recorrido" & ";"
datos.recorrido lo he puesto de mil formas, incluso he osado a quitar el group by aunque sin resultado.
Al usar la query en DBeaver no da ningún problema y la ejecuta bien. ¿Qué puedo hacer?
Ah, por cierto, gracias por tu tiempo / paciencia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco
Val: 256
Oro
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Restar horas

Publicado por Francisco (110 intervenciones) el 14/10/2019 18:42:50
Hola


Creo que seria asi:


1
2
3
4
5
6
7
tiempoSQL = ""
tiempoSQL = tiempoSQL & "SELECT "
tiempoSQL = tiempoSQL & "recorrido, MAX(tiempo::time) - MIN(tiempo::time) AS diferencia "
tiempoSQL = tiempoSQL & "FROM datos "
tiempoSQL = tiempoSQL & "WHERE recorrido = '" & Ruta_cbox.Text & "' "
tiempoSQL = tiempoSQL & "GROUP BY " & "recorrido "
tiempoSQL = tiempoSQL & "ORDER BY tiempo "


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar