Funciones de fecha en PostgreSQL

Este artículo muestra las funciones de fecha en PostgreSQL más utilizadas que te permiten manipular fechas y tiempo de una manera eficiente. Haz clic sobre el nombre de la función para comprobar cómo funciona.

Funciones de fecha y hora

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

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