Función TRANSACTION_TIMESTAMP en PostgreSQL

La función TRANSACTION_TIMESTAMP en PostgreSQL es una herramienta que te permite obtener la fecha y hora local correspondiente al inicio de una transacción, incluyendo el desplazamiento de la zona horaria. Es una alternativa a la función NOW() y comparte similitudes con CURRENT_TIMESTAMP cuando se utiliza sin argumentos, aunque con la peculiaridad de que TRANSACTION_TIMESTAMP fija el valor al momento en que comenzó la transacción.

A diferencia de otras funciones temporales en PostgreSQL, TRANSACTION_TIMESTAMP no acepta argumentos, lo que simplifica su uso en consultas donde necesitas un registro temporal preciso y constante durante toda la duración de una transacción. Esto la convierte en una función clave para operaciones que requieren coherencia temporal, como auditorías o registros de eventos.

En este artículo, primero te mostraré la sintaxis básica de TRANSACTION_TIMESTAMP, y después veremos ejemplos prácticos que ilustran cómo implementarla en distintos contextos.

Para más información, puedes consultar la documentación oficial de la función TRANSACTION_TIMESTAMP en PostgreSQL.

Sintaxis

La sintaxis para utilizar la función TRANSACTION_TIMESTAMP en PostgreSQL es la siguiente:

TRANSACTION_TIMESTAMP()

Ejemplo

SELECT TRANSACTION_TIMESTAMP();
Función TRANSACTION_TIMESTAMP en PostgreSQL

NOW en transacciones

Es importante tener en cuenta que al utilizar la función TRANSACTION_TIMESTAMP en PostgreSQL dentro de transacciones, siempre devolverá la fecha y hora local correspondientes al momento en que inició la transacción, incluyendo el desplazamiento de la zona horaria. Esto significa que, independientemente de cuántas veces llames a la función dentro de la misma transacción, el valor devuelto será constante y no reflejará cambios posteriores durante su ejecución.

BEGIN;
SELECT TRANSACTION_TIMESTAMP();
SELECT pg_sleep(3);
SELECT TRANSACTION_TIMESTAMP();
COMMIT;

Escribir un comentario