PostgreSQL transaction_timestamp() Function
The PostgreSQL transaction_timestamp()
function returns the system date and time when the current transaction started.
The PostgreSQL transaction_timestamp()
function is equivalent to now()
and current_timestamp()
.
transaction_timestamp()
Syntax
Here is the syntax of the PostgreSQL transaction_timestamp()
function:
transaction_timestamp() -> timestamp
Parameters
The PostgreSQL transaction_timestamp()
function does not require any parameters.
Return value
The PostgreSQL transaction_timestamp()
function returns a date and time with time zone information, which is the system date and time when the transaction in which the function is located started executing.
That is, all transaction_timestamp()
functions in a transaction return the same value, it is different from clock_timestamp()
.
transaction_timestamp()
Examples
This example shows how to use the PostgreSQL transaction_timestamp()
function to get the current date and time.
SELECT transaction_timestamp();
transaction_timestamp
-------------------------------
2022-05-15 22:17:34.819513+03
The transaction_timestamp()
function returns the time when the statement in which it was executed started, not the time when the function was executed. See the example below:
SELECT
transaction_timestamp(),
pg_sleep(1),
transaction_timestamp();
-[ RECORD 1 ]---------------------------
transaction_timestamp | 2022-05-15 22:18:31.076406+03
pg_sleep |
transaction_timestamp | 2022-05-15 22:18:31.076406+03
Here, even though we use pg_sleep(1)
to pause execution for 1 second between the two transaction_timestamp()
functions, the values returned by both transaction_timestamp()
functions is still the same.