Psqlgresql Time function时间函数
select now() 获取的时间为什么一直不变?
pg中获取时间的方式有多种
如果放在事务中,now()获取的就是事务开始的时间,事务不结束,时间不变;而clock_timestamp()显示的时间会实时变化。获取时间行数参考如下:
now()
timestamp with time zone
Current date and time (start of current transaction); see Section 9.9.4
current_timestamp
timestamp with time zone
Current date and time (start of current transaction); see Section 9.9.4
current_time
time with time zone
Current time of day; see Section 9.9.4
clock_timestamp()
timestamp with time zone
Current date and time (changes during statement execution); see Section 9.9.4
eg:
postgres=# begin;
BEGIN
postgres=# select now();
now
-------------------------------
2019-04-15 16:05:23.491101+08
(1 row)
postgres=# select now();
now
-------------------------------
2019-04-15 16:05:23.491101+08
(1 row)
postgres=# end;
COMMIT
postgres=#
postgres=# begin;
BEGIN
postgres=# select clock_timestamp();
clock_timestamp
-------------------------------
2019-04-15 16:04:20.491936+08
(1 row)
postgres=# select clock_timestamp();
clock_timestamp
-------------------------------
2019-04-15 16:05:01.330757+08
(1 row)
postgres=# end;
COMMIT