Funciones de fecha en PostgreSQL

En este artículo exploraremos las funciones de fecha en PostgreSQL más utilizadas, funciones esenciales que te permiten manipular fechas y tiempos de manera eficiente. A través de ejemplos prácticos, podrás ver cómo aplicar estas funciones en tus consultas. Haz clic sobre el nombre de cada función para conocer más detalles sobre su funcionamiento y cómo implementarla en tu entorno de trabajo.

Funciones de fecha y hora

Antes de sumergirte en la lista completa de funciones de fecha en PostgreSQL, es importante destacar que estas herramientas te permiten realizar desde cálculos básicos hasta transformaciones avanzadas con fechas y tiempos. Ya sea que necesites extraer partes específicas de una fecha, calcular diferencias entre momentos o formatear resultados, PostgreSQL tiene una función para cada necesidad. A continuación, encontrarás un listado con todas las funciones disponibles, organizadas para que puedas identificar fácilmente cuál es la más adecuada para tus consultas.

FunciónDescripción
AGECalcula la diferencia entre dos fechas devolviendo años, meses y días
CLOCK_TIMESTAMPDevuelve la fecha y hora en el momento de invocar a la función.
CURRENT_DATEDevuelve la fecha actual
CURRENT_TIMEDevuelve la hora actual
CURRENT_TIMESTAMPDevuelve la fecha y la hora con la zona horaria de cuando se inicio la transacción
DATE_ADDAñade un intervalo a una fecha y hora con zona horaria.
DATE_BINDivide la marca de tiempo de entrada en el intervalo especificado.
DATE_PARTDevuelve parte de una fecha y hora
DATE_TRUNCTrunca la parte especificada de una fecha y hora
EXTRACTExtrae la parte indicada de una fecha y hora
ISFINITEComprueba si una fecha o intervalo es infinito
JUSTIFY_DAYSCada 30 días lo muestra en formato de mes y dia
JUSTIFY_HOURSCada 24 horas lo muestra en formato de día y hora
JUSTIFY_INTERVALMuestra los días y horas indicados
LOCALTIMEDevuelve la hora del inicio de la transacción
LOCALTIMESTAMPDevuelve la fecha y hora del inicio de la transacción
MAKE_DATECrea una fecha a partir de los campos año, mes y día.
MAKE_INTERVALCrea un intervalo a partir de campos de años, meses, semanas, días, horas, minutos y segundos.
MAKE_TIMECrea la hora a partir de los campos de horas, minutos y segundos
MAKE_TIMESTAMPCrea una marca de tiempo a partir de los campos año, mes, día, hora, minuto y segundos.
MAKE_TIMESTAMPTZCrea una marca de tiempo con zona horaria a partir de los campos año, mes, día, hora, minuto y segundos.
NOWDevuelve la fecha y hora del inicio de la transacción con la zona horaria
STATEMENT_TIMESTAMPDevuelve la fecha y hora actuales en las que se ejecuta la instrucción actual
TIMEOFDAYDevuelve la fecha y hora actuales, como clock_timestamp, pero en cadena de texto)
TRANSACTION_TIMESTAMPIgual que NOW()
TO_DATEConvierte una cadena en fecha
TO_TIMESTAMPConvierte una cadena en fecha y hora

Operadores de fecha y hora

Antes de explorar los operadores de fecha y hora en PostgreSQL, vale la pena mencionar que estos son fundamentales para realizar comparaciones, cálculos y manipulaciones entre fechas y tiempos. Con ellos, puedes sumar o restar intervalos, comparar rangos temporales y realizar operaciones avanzadas que simplifican el manejo de datos cronológicos. A continuación, encontrarás un listado detallado de operadores, listos para que los incorpores en tus consultas de forma eficiente.

OperadorDescripción y ejemplo
date + integer → dateAñadir un número de días a una fecha
fecha ‘2001-09-28’ + 7 → 2001-10-05
date + interval → timestampAñadir un intervalo a una fecha
fecha ‘2001-09-28’ + intervalo ‘1 hora’ → 2001-09-28 01:00:00
fecha + hora → marca de tiempoAñadir una hora del día a una fecha
fecha ‘2001-09-28′ + hora ’03:00’ → 2001-09-28 03:00:00
intervalo + intervalo → intervalo
Añadir intervalos
intervalo ‘1 día’ + intervalo ‘1 hora’ → 1 día 01:00:00
timestamp + intervalo → timestamp
Añadir un intervalo a una marca de tiempo
timestamp ‘2001-09-28 01:00′ + intervalo ’23 horas’ → 2001-09-29 00:00:00
tiempo + intervalo → tiempotiempo + intervalo → tiempo
Añadir un intervalo a un tiempo
hora ’01:00′ + intervalo ‘3 horas’ → 04:00:00
intervalo → intervalo
Negar un intervalo
intervalo ’23 horas’ → -23:00:00
fecha – fecha → entero
Restar fechas, produciendo el número de días transcurridos.
fecha ‘2001-10-01’ – fecha ‘2001-09-28’ → 3
fecha – entero → fecha
Restar un número de días a una fecha
fecha ‘2001-10-01’ – 7 → 2001-09-24
fecha – intervalo → marca de tiempo
Restar un intervalo de una fecha
fecha ‘2001-09-28’ – intervalo ‘1 hora’ → 2001-09-27 23:00:00
tiempo – tiempo → intervalo
Restar tiempos
tiempo ’05:00′ – tiempo ’03:00′ → 02:00:00
tiempo – intervalo → tiempo
Restar un intervalo a un tiempo
tiempo ’05:00′ – intervalo ‘2 horas’ → 03:00:00
timestamp – intervalo → timestamp
Restar un intervalo de una marca de tiempo
timestamp ‘2001-09-28 23:00′ – intervalo ’23 horas’ → 2001-09-28 00:00:00
intervalo – intervalo → intervalo
Restar intervalos
intervalo ‘1 día’ – intervalo ‘1 hora’ → 1 día -01:00:00
timestamp – timestamp → intervalo
Restar marcas de tiempo (convirtiendo intervalos de 24 horas en días, de forma similar a justify_hours()).
timestamp ‘2001-09-29 03:00’ – timestamp ‘2001-07-27 12:00’ → 63 días 15:00:00
intervalo * doble precisión → intervalo
Multiplicar un intervalo por un escalar
intervalo ‘1 segundo’ * 900 → 00:15:00
intervalo ‘1 día’ * 21 → 21 días
intervalo ‘1 hora’ * 3.5 → 03:30:00
intervalo / doble precisión → intervalo
Dividir un intervalo por un escalar
intervalo ‘1 hora’ / 1.5 → 00:40:00

Escribir un comentario