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
