PostgreSQL clock_timestamp() 函数使用指南

PostgreSQL clock_timestamp() 函数返回此函数执行时的日期和时间。同一个语句中的两次执行 clock_timestamp() 的返回值可能不同。

clock_timestamp() 语法

这是 PostgreSQL clock_timestamp() 函数的语法:

clock_timestamp() -> timestamp

参数

PostgreSQL clock_timestamp() 函数没有任何参数。

返回值

PostgreSQL clock_timestamp() 函数返回一个带有时区信息的日期和时间,它是此函数执行时的系统日期和时间。

注意,clock_timestamp() 函数与 current_timestamp()transaction_timestamp()now() 函数不同。 current_timestamp()transaction_timestamp()now() 函数返回的是事务、函数、存储过程开始执行的时间。也就是,同一个语句中的所有的 current_timestamp()now() 的返回值是相同的,而 clock_timestamp() 函数则可能不同。

clock_timestamp() 示例

本示例展示了如何使用 PostgreSQL clock_timestamp() 函数获取当前的日期和时间。

SELECT clock_timestamp();
        clock_timestamp
-------------------------------
 2022-05-14 15:31:41.835509+03

在语句执行期间,同一个语句中的 clock_timestamp() 函数返回的值可能是不同的,比如下面的例子:

SELECT
    clock_timestamp(),
    pg_sleep(1),
    clock_timestamp();
-[ RECORD 1 ]---+------------------------------
clock_timestamp | 2022-05-14 15:37:40.019238+03
pg_sleep        |
clock_timestamp | 2022-05-14 15:37:41.020112+03

这里我们可以看到,后面的 clock_timestamp() 的返回值比前面的返回值晚了一秒,这是因为 pg_sleep(1) 函数让执行暂停了 1 秒。