PostgreSQL localtimestamp() 函数使用指南

PostgreSQL localimestamp() 函数返回所属的事务开始的系统日期和时间。

localtimestamp() 语法

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

localtimestamp -> TIMESTAMP

或者

localtimestamp(precision) -> TIMESTAMP

参数

precision
必需的。 它是一个整数,指示了小数秒的位数。

返回值

PostgreSQL localtimestamp() 函数返回该函数所属的事务开始时的系统日期和时间。

也就是说同一个语句中的 localtimestamp() 函数返回值相同,这点与 clock_timestamp() 不同。

不同于 current_timestamp()localtimestamp() 函数返回的系统日期和时间不带时区信息。

localtimestamp() 示例

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

SELECT localtimestamp;
       localtimestamp       
----------------------------
 2022-05-16 20:56:24.432821

或者使用如下语句来限制小数秒的位数:

SELECT
    localtimestamp(0),
    localtimestamp(1),
    localtimestamp(2),
    localtimestamp(3),
    localtimestamp(4),
    localtimestamp(5),
    localtimestamp(6);
localtimestamp | 2022-05-16 20:56:37
localtimestamp | 2022-05-16 20:56:36.7
localtimestamp | 2022-05-16 20:56:36.71
localtimestamp | 2022-05-16 20:56:36.707
localtimestamp | 2022-05-16 20:56:36.7073
localtimestamp | 2022-05-16 20:56:36.70727
localtimestamp | 2022-05-16 20:56:36.707265

localtimestamp() 函数返回的是所属的事务开始的时间,而不是函数执行时刻的时间。请看下面的示例:

SELECT
    localtimestamp,
    pg_sleep(1),
    localtimestamp;
-[ RECORD 1 ]--+---------------------------
localtimestamp | 2022-05-16 20:56:52.244352
pg_sleep       | 
localtimestamp | 2022-05-16 20:56:52.244352

这里,即使我们在两个 localtimestamp 函数使用了 pg_sleep(1) 将执行暂停了 1 秒,两个 localtimestamp 函数返回的时间仍然是相同的。