Calculando Diferencias de Tiempo con INTERVAL
En este paso, aprenderá cómo calcular la diferencia de tiempo entre dos eventos utilizando el tipo de datos INTERVAL
.
Para calcular la diferencia de tiempo, puede restar una marca de tiempo (timestamp) de otra. El resultado será un valor INTERVAL
que representa la diferencia.
Calculemos la diferencia de tiempo entre 'Follow-up Meeting' y 'Conference Call'. Para hacer esto, puede usar una subconsulta (subquery) o unir (join) la tabla a sí misma. Aquí hay un ejemplo usando un join:
SELECT
e1.event_name AS event1,
e2.event_name AS event2,
e2.event_time - e1.event_time AS time_difference
FROM
events e1
JOIN
events e2 ON e1.event_name = 'Conference Call' AND e2.event_name = 'Follow-up Meeting';
Esta consulta une la tabla events
a sí misma, asignando alias a las tablas como e1
y e2
. Luego selecciona el event_name
de ambas tablas y calcula la diferencia de tiempo entre el event_time
de 'Follow-up Meeting' y 'Conference Call'. La salida será:
event1 | event2 | time_difference
----------------+-----------------+---------------------
Conference Call | Follow-up Meeting | 1 day 02:00:00
(1 row)
La columna time_difference
muestra el intervalo entre los dos eventos.
También puede extraer componentes específicos del valor INTERVAL
utilizando la función EXTRACT
. Por ejemplo, para extraer el número de días de la diferencia de tiempo, puede usar la siguiente consulta:
SELECT
e1.event_name AS event1,
e2.event_name AS event2,
EXTRACT(DAY FROM (e2.event_time - e1.event_time)) AS days_difference
FROM
events e1
JOIN
events e2 ON e1.event_name = 'Conference Call' AND e2.event_name = 'Follow-up Meeting';
Esta consulta extrae el número de días de la time_difference
y lo muestra como days_difference
.
Finalmente, salga del shell de PostgreSQL:
\q
Esto lo devolverá a la terminal.