En esta oportunidad voy hacer referencia en una pequeña consulta que en ocasiones son muy útiles cuando necesitamos saber el tiempo exacto que ha transcurrido un registro en postgreSql.
La consulta es la siguiente:
SELECT
date_part('YEAR', age(timestamp 'now()', created_at::TIMESTAMP)) AS anio,
date_part('MONTH', age(timestamp 'now()',created_at::TIMESTAMP)) AS mes,
date_part('DAY', age(timestamp 'now()',created_at::TIMESTAMP)) AS dia,
date_part('HOUR', age(timestamp 'now()',created_at::TIMESTAMP)) AS hora,
date_part('MINUTE', age(timestamp 'now()',created_at::TIMESTAMP)) AS minuto,
date_part('SECOND', age(timestamp 'now()',created_at::TIMESTAMP))::integer AS segundo,
date_part('MICROSECONDS', age(timestamp 'now()',created_at::TIMESTAMP)) AS segundo
FROM miTabla

También tengo otra sentencia que permite verificar la cantidad de días que han pasado desde una fecha inicio y fin:

SELECT date_part('DAY', TIMESTAMP '2013-02-20' - '2012-02-20') AS dias;

Anuncios