Skip to content

PostgreSQL localtimestamp() 函数 ​

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

localtimestamp() 语法 ​

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

sql
localtimestamp -> TIMESTAMP

或者

sql
localtimestamp(precision) -> TIMESTAMP

参数 ​

  • precision

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

返回值 ​

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

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

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

localtimestamp() 示例 ​

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

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

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

sql
SELECT
    localtimestamp(0),
    localtimestamp(1),
    localtimestamp(2),
    localtimestamp(3),
    localtimestamp(4),
    localtimestamp(5),
    localtimestamp(6);
sql
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() 函数返回的是所属的事务开始的时间,而不是函数执行时刻的时间。请看下面的示例:

sql
SELECT
    localtimestamp,
    pg_sleep(1),
    localtimestamp;
sql
-[ 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 函数返回的时间仍然是相同的。