Encuentre la diferencia entre las marcas de tiempo en segundos en PostgreSQL


127

Tengo una tabla PostgreSQL 8.3con 2 timestampcolumnas. Me gustaría obtener la diferencia entre estos timestampsen segundos. ¿Podría ayudarme a hacer esto?

TableA
(
  timestamp_A timestamp,
  timestamp_B timestamp
)

Necesito obtener algo como (timestamo_B - timestamp_A)en segundos (no solo la diferencia entre segundos, debe incluir horas, minutos, etc.) .

Respuestas:


239

Tratar: 

SELECT EXTRACT(EPOCH FROM (timestamp_B - timestamp_A))
FROM TableA

Detalles aquí: EXTRACTO .


3
Muchas gracias por la respuesta. Funcionó !!! En la consulta anterior, nos falta un paréntesis de cierre. Pero lo he descubierto. Muchas gracias por tu rápida respuesta.
— Arun

30
select age(timestamp_A, timestamp_B)

Respondiendo al comentario de Igor:

select age('2013-02-28 11:01:28'::timestamp, '2011-12-31 11:00'::timestamp);
              age              
-------------------------------
 1 year 1 mon 28 days 00:01:28

No hará el trabajo. Lo hará Subtract arguments, producing a "symbolic" result that uses years and months. No dará la diferencia en segundos.
— Igor Romanchenko

@Igor Actualizado con los resultados incluidos los segundos. El OP quiere no solo segundos, sino también minutos, horas, etc.
— Clodoaldo Neto

5
Si lo entendí correctamente, quiere to get the difference between these timestamps in seconds. Y it should include hours, minutes etcsignifica que debe ser la diferencia completa como 10:25:30 - 10:15:25 = 605 seconds. Mi conjetura - que utilizó EXTRACT(SECONDS FROM ...)y se puso10:25:30 - 10:15:25 = 5 seconds
— Igor Romanchenko

1
@Igor No está muy claro pero ahora que lo dices creo que probablemente tengas razón.
— Clodoaldo Neto

@Clodoaldo: Necesito el resultado mencionado por Igor. Necesito la diferencia completa en segundos.
— Arun

0
SELECT (cast(timestamp_1 as bigint) - cast(timestamp_2 as bigint)) FROM table;

En caso de que alguien tenga algún problema con el uso de extract .


Tampoco funciona con marcas de tiempo con zonas horarias.
— Rodolfo
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.