微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgreSQL事务中的时间

在同一个事务中,时间是不变的:

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] 举报,一经查实,本站将立刻删除。

相关推荐