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.
Tabla de Contenidos
ocultar
Funciones de fecha y hora
Función | Descripción |
---|---|
AGE | Calcula la diferencia entre dos fechas devolviendo años, meses y días |
CLOCK_TIMESTAMP | Devuelve la fecha y hora en el momento de invocar a la función. |
CURRENT_DATE | Devuelve la fecha actual |
CURRENT_TIME | Devuelve la hora actual |
CURRENT_TIMESTAMP | Devuelve la fecha y la hora con la zona horaria de cuando se inicio la transacción |
DATE_ADD | Añade un intervalo a una fecha y hora con zona horaria. |
DATE_BIN | Divide la marca de tiempo de entrada en el intervalo especificado. |
DATE_PART | Devuelve parte de una fecha y hora |
DATE_TRUNC | Trunca la parte especificada de una fecha y hora |
EXTRACT | Extrae la parte indicada de una fecha y hora |
ISFINITE | Comprueba si una fecha o intervalo es infinito |
JUSTIFY_DAYS | Cada 30 días lo muestra en formato de mes y dia |
JUSTIFY_HOURS | Cada 24 horas lo muestra en formato de día y hora |
JUSTIFY_INTERVAL | Muestra los días y horas indicados |
LOCALTIME | Devuelve la hora del inicio de la transacción |
LOCALTIMESTAMP | Devuelve la fecha y hora del inicio de la transacción |
MAKE_DATE | Crea una fecha a partir de los campos año, mes y día. |
MAKE_INTERVAL | Crea un intervalo a partir de campos de años, meses, semanas, días, horas, minutos y segundos. |
MAKE_TIME | Crea la hora a partir de los campos de horas, minutos y segundos |
MAKE_TIMESTAMP | Crea una marca de tiempo a partir de los campos año, mes, día, hora, minuto y segundos. |
MAKE_TIMESTAMPTZ | Crea una marca de tiempo con zona horaria a partir de los campos año, mes, día, hora, minuto y segundos. |
NOW | Devuelve la fecha y hora del inicio de la transacción con la zona horaria |
STATEMENT_TIMESTAMP | Devuelve la fecha y hora actuales en las que se ejecuta la instrucción actual |
TIMEOFDAY | Devuelve la fecha y hora actuales, como clock_timestamp, pero en cadena de texto) |
TRANSACTION_TIMESTAMP | Igual que NOW() |
TO_DATE | Convierte una cadena en fecha |
TO_TIMESTAMP | Convierte una cadena en fecha y hora |
Operadores de fecha y hora
Operador | Descripción y ejemplo |
---|---|
date + integer → date | Añadir un número de días a una fecha fecha ‘2001-09-28’ + 7 → 2001-10-05 |
date + interval → timestamp | Añadir un intervalo a una fecha fecha ‘2001-09-28’ + intervalo ‘1 hora’ → 2001-09-28 01:00:00 |
fecha + hora → marca de tiempo | Añ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 → tiempo | tiempo + 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 |