statement_timestamp()
是一个系统函数,返回一个时间戳,表示当前语句开始的时间点。
statement_timestamp()
在 PostgreSQL 8.2 中添加。
用法
statement_timestamp ( ) → timestamp with time zone
返回的值是客户端接收到的最新命令消息的时间。如果它是事务中的第一个也是唯一的语句,则返回的值将与 transaction_timestamp()
/ current_timestamp
返回的值相同。
更改历史记录
- PostgreSQL 8.2
- 添加 (提交 e6004f01)
示例
statement_timestamp()
的基本执行示例
postgres=# SELECT statement_timestamp(); statement_timestamp ------------------------------- 2021-06-17 17:51:41.791603+01 (1 row)
在显式事务之外执行的语句中,statement_timestamp()
返回的时间戳与 transaction_timestamp()
返回的时间戳相同
postgres=# SELECT transaction_timestamp(), statement_timestamp(), clock_timestamp(), clock_timestamp()\gx -[ RECORD 1 ]---------+------------------------------ transaction_timestamp | 2021-06-17 18:06:45.891294+01 statement_timestamp | 2021-06-17 18:06:45.891294+01 clock_timestamp | 2021-06-17 18:06:45.891497+01 clock_timestamp | 2021-06-17 18:06:45.891497+01
在显式事务中执行相同的查询
postgres=# BEGIN; BEGIN postgres=*# SELECT transaction_timestamp(), statement_timestamp(), clock_timestamp(), clock_timestamp()\gx -[ RECORD 1 ]---------+------------------------------ transaction_timestamp | 2021-06-17 18:09:28.23169+01 statement_timestamp | 2021-06-17 18:09:30.726471+01 clock_timestamp | 2021-06-17 18:09:30.726765+01 clock_timestamp | 2021-06-17 18:09:30.726766+01