如何在PostgreSQL事务中获得实时?

sea*_*eas 22 sql database postgresql transactions

据我所知now()在整个PostgreSQL事务中返回相同的时间?但是如何获得实时

另外,我感兴趣的是是否有任何配置参数来限制事务的持续时间,以便在此期限到期后事务会立即失败或以其他方式禁止以下查询?

Fer*_*eia 54

使用clock_timestamp().

now()是一个传统的PostgreSQL等价物transaction_timestamp(),相当于CURRENT_TIMESTAMP.这些函数返回当前事务的开始时间.他们的价值观在交易期间不会改变.

statement_timestamp() 返回从客户端收到最新命令消息的时间.

clock_timestamp() 返回实际的当前时间,因此即使在单个SQL命令中,其值也会更改.

有关更多信息,请参阅文档.


Tob*_*ouw 1

Timeofday()
Run Code Online (Sandbox Code Playgroud)

可能为你工作。

  • 您必须记住一个怪癖:“timeofday() 是一个历史 PostgreSQL 函数。与clock_timestamp() 一样,它返回实际的当前时间,但作为格式化文本字符串而不是带有时区值的时间戳。” (12认同)
  • @MilenA.Radev `timeofday()` 确实返回文本,但 `clock_timestamp()` 返回带时区的时间戳。 (2认同)