PostgreSQL 教程: current_time 函数

九月 21, 2023

PostgreSQL 的CURRENT_TIME函数返回带时区的当前时间(time with time zone)。

语法

下面说明了CURRENT_TIME函数的语法:

CURRENT_TIME(precision)

参数

CURRENT_TIME函数接受一个可选参数:

1) precision

precision参数指定返回的秒数部分的小数精度。如果省略precision参数,结果将包括完整的可用精度。

返回值

CURRENT_TIME函数返回一个TIME WITH TIME ZONE类型的值,表示当前的时间和时区。

示例

以下示例展示了如何获取当前时间:

SELECT CURRENT_TIME;

输出的是TIME WITH TIME ZONE类型的值,如下:

       timetz
--------------------
 19:25:24.805985-07
(1 row)

在此示例中,我们没有指定精度参数,因此结果中包含可用的完整精度。

以下示例说明了如何使用CURRENT_TIME函数并将精度设置为 2:

SELECT CURRENT_TIME(2);

结果是:

     timetz
----------------
 19:26:43.01-07
(1 row)

CURRENT_TIME函数可以用作TIME类型的列的默认值。

让我们看下面的例子。

首先,创建一个表,名为log,用于演示:

CREATE TABLE log (
    log_id SERIAL PRIMARY KEY,
    message VARCHAR(255) NOT NULL,
    created_at TIME DEFAULT CURRENT_TIME,
    created_on DATE DEFAULT CURRENT_DATE
);

log表有一个created_at列,该列的默认值是CURRENT_TIME函数的结果。

其次,向log表中插入一行

INSERT INTO log( message )
VALUES('Testing the CURRENT_TIME function');

在语句中,我们只为message列指定了一个值,因此,其他列均采用默认值。

第三步,使用如下查询,检查该行是否已插入到log表中,且created_at列是否正确填充:

SELECT * FROM log;

下图显示了结果:

PostgreSQL CURRENT_TIME example

如您所见,该created_at列填充了INSERT语句执行时的时间。

在本教程中,您学习了如何使用 PostgreSQL 的CURRENT_TIME函数获取当前时间。