我注意到 Postgres 缓存NOW()
了事务内部的值,例如:
lev=# BEGIN;
BEGIN
lev=# SELECT now();
now
-------------------------------
2022-04-07 19:16:52.358923-07
(1 row)
lev=# SELECTpg_sleep(1);
pg_sleep
----------
(1 row)
lev=# SELECT now();
now
-------------------------------
2022-04-07 19:16:52.358923-07
(1 row)
有没有办法在每次调用的事务中获取最新时间NOW()
?
如手册中所述,
now()
(并且符合标准current_timestamp
)返回事务开始时的时间(并且是 的别名transaction_timestamp()
)如果您想要独立于语句或事务开始的内容,请使用
clock_timestamp()