在同一个事务中,时间是不变的:
postgres=# begin; BEGIN postgres=# select Now(),current_time,current_timestamp,localtime,localtimestamp,transaction_timestamp(); Now | current_time | current_timestamp | localtime | localtimestamp | transaction_timestamp -------------------------------+--------------------+-------------------------------+-----------------+----------------------------+------------------------------- 2021-01-22 16:50:46.917081+08 | 16:50:46.917081+08 | 2021-01-22 16:50:46.917081+08 | 16:50:46.917081 | 2021-01-22 16:50:46.917081 | 2021-01-22 16:50:46.917081+08 (1 row) postgres=# select pg_sleep_for('10 seconds'); pg_sleep_for -------------- (1 row) postgres=# select Now(),current_time,current_timestamp,localtime,localtimestamp,transaction_timestamp(); Now | current_time | current_timestamp | localtime | localtimestamp | transaction_timestamp -------------------------------+--------------------+-------------------------------+-----------------+----------------------------+------------------------------- 2021-01-22 16:50:46.917081+08 | 16:50:46.917081+08 | 2021-01-22 16:50:46.917081+08 | 16:50:46.917081 | 2021-01-22 16:50:46.917081 | 2021-01-22 16:50:46.917081+08 (1 row) postgres=#
要想获得在事务中某个语句执行的时间,可以使用clock_timestamp()
postgres=# begin; BEGIN postgres=# select statement_timestamp(),clock_timestamp(); statement_timestamp | clock_timestamp -------------------------------+------------------------------- 2021-01-22 16:54:13.433445+08 | 2021-01-22 16:54:13.433605+08 (1 row) postgres=# select pg_sleep_for('10 seconds'); pg_sleep_for -------------- (1 row) postgres=# select statement_timestamp(),clock_timestamp(); statement_timestamp | clock_timestamp ------------------------------+------------------------------- 2021-01-22 16:54:29.92086+08 | 2021-01-22 16:54:29.921041+08 (1 row) postgres=#
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。