📜  PostgreSQL – 时间戳数据类型

📅  最后修改于: 2022-05-13 01:57:15.580000             🧑  作者: Mango

PostgreSQL – 时间戳数据类型

在 PostgreSQL 2 时态数据类型中,即timestamptimestamptz ,其中一种是没有时区的,一种是带时区的,支持将时间和日期存储到列中。 timestamptimestamptz使用 8 ytes 来存储时间戳值。

Syntax: TIMESTAMP; or TIMESTAMPTZ;

现在让我们看一些例子以便更好地理解。
示例 1:
首先,我们使用以下命令创建一个包含timestamptimestaptz列的表:

CREATE TABLE timestamp_demo (ts TIMESTAMP, tstz TIMESTAMPTZ);

然后我们将数据库服务器的时区设置为 Asia/Calcutta 如下:

SET timezone = 'Asia/Calcutta';

现在我们的时区已设置,我们将使用以下命令在 timestamp_demo 表中插入一个新行:

INSERT INTO timestamp_demo (ts, tstz)
VALUES
    (
        '2020-06-22 19:10:25-07',
        '2020-06-22 19:10:25-07'
    );

现在我们将使用以下命令从timestamptimestamptz列中查询数据:



SELECT
    ts, tstz
FROM
    timestamp_demo;

输出:

示例 2:
在本例中,我们将使用timezone(zone, timestamp)函数将 Asia/Calcutta 时区转换为 America/New_York 时timezone(zone, timestamp)
首先,我们使用以下命令创建一个包含timestamptimestaptz列的表:

CREATE TABLE timezone_conversion_demo ( tstz TIMESTAMPTZ);

然后我们将数据库服务器的时区设置为 Asia/Calcutta 如下:

SET timezone = 'Asia/Calcutta';

现在我们的时区已设置,我们将使用以下命令在 timezone_conversion_demo 表中插入一个新行:

INSERT INTO timezone_conversion_demo ( tstz)
VALUES
    (
        
        '2020-06-22 19:10:25-07'
    );

现在我们将使用以下命令从timestamptimestamptz列中查询数据:

SELECT timezone('America/New_York', '2020-06-22 19:10:25');

输出: