PostgreSQL 如何在 PostgreSQL 中保存 JS Date.now()

PostgreSQL 如何在 PostgreSQL 中保存 JS Date.now()

在本文中,我们将介绍如何在 PostgreSQL 数据库中保存 JavaScript 中的 Date.now() 函数返回的时间戳。Date.now() 函数返回的是自 1970 年 1 月 1 日以来的毫秒数,我们需要通过一些转换来将其保存到 PostgreSQL 中的日期或时间列中。

阅读更多:PostgreSQL 教程

使用 to_timestamp() 函数

PostgreSQL 提供了 to_timestamp() 函数,该函数可以将一个浮点数或字符串转换为 timestamp 数据类型。我们可以使用该函数将 Date.now() 返回的时间戳转换为 PostgreSQL 中的 timestamp 数据类型。

下面是一个示例,展示如何在 PostgreSQL 中保存 Date.now() 的结果:

-- 创建一个名为 timestamp_test 的表
CREATE TABLE timestamp_test (
    id SERIAL PRIMARY KEY,
    created_at TIMESTAMP
);

-- 插入当前时间戳到 created_at 列中
INSERT INTO timestamp_test (created_at)
VALUES (to_timestamp(1541275187872/1000.0));

-- 查询结果验证
SELECT * FROM timestamp_test;

上述示例中,我们首先创建了一个名为 timestamp_test 的表,其中包含一个名为 created_at 的 timestamp 列。接下来,我们使用 to_timestamp() 函数将 Date.now() 的结果除以 1000(将毫秒转换为秒),并将其插入到 created_at 列中。最后,我们查询该表,以验证我们正确保存了时间戳。

使用 to_timestamp() 和 to_timestamptz() 函数

除了 to_timestamp() 函数外,PostgreSQL 还提供了 to_timestamptz() 函数,该函数可以将一个浮点数或字符串转换为 timestamp with time zone(timestamptz) 数据类型。timestamptz 数据类型会将时间戳以 UTC 时间保存,并在显示时自动将其转换为当前时区的时间。

下面是一个示例,展示如何在 PostgreSQL 中保存 Date.now() 的结果,并使用 timestamptz 数据类型:

-- 创建一个名为 timestamptz_test 的表
CREATE TABLE timestamptz_test (
    id SERIAL PRIMARY KEY,
    created_at TIMESTAMPTZ
);

-- 插入当前时间戳到 created_at 列中
INSERT INTO timestamptz_test (created_at)
VALUES (to_timestamptz(1541275187872/1000.0));

-- 查询结果验证
SELECT * FROM timestamptz_test;

上述示例中,我们首先创建了一个名为 timestamptz_test 的表,其中包含一个名为 created_at 的 timestamptz 列。然后,我们使用 to_timestamptz() 函数将 Date.now() 的结果除以 1000 并插入到 created_at 列中。最后,我们查询该表,以验证我们正确保存了时间戳,并以当前时区的时间进行显示。

使用 CURRENT_TIMESTAMP 和 CURRENT_TIMESTAMP(0)

除了手动转换时间戳外,PostgreSQL 还提供了两个特殊的函数可以直接获取当前时间戳:CURRENT_TIMESTAMP 和 CURRENT_TIMESTAMP(0)。这两个函数的区别在于是否包含毫秒。

下面是一个示例,展示如何在 PostgreSQL 中保存当前时间戳:

-- 创建一个名为 current_timestamp_test 的表
CREATE TABLE current_timestamp_test (
    id SERIAL PRIMARY KEY,
    created_at TIMESTAMP,
    created_at_no_ms TIMESTAMP
);

-- 插入当前时间戳到 created_at 列中
INSERT INTO current_timestamp_test (created_at, created_at_no_ms)
VALUES (CURRENT_TIMESTAMP, CURRENT_TIMESTAMP(0));

-- 查询结果验证
SELECT * FROM current_timestamp_test;

上述示例中,我们首先创建了一个名为 current_timestamp_test 的表,其中包含两个 timestamp 列:created_at 和 created_at_no_ms。然后,我们使用 CURRENT_TIMESTAMP 和 CURRENT_TIMESTAMP(0) 函数分别插入当前时间戳,并查询该表以验证数据是否正确保存。

总结

在本文中,我们介绍了如何在 PostgreSQL 中保存 JavaScript 中的 Date.now() 函数返回的时间戳。我们使用了 to_timestamp() 和 to_timestamptz() 函数来将时间戳转换为 PostgreSQL 中的日期或时间列。此外,我们还介绍了使用 CURRENT_TIMESTAMP 和 CURRENT_TIMESTAMP(0) 函数直接获取当前时间戳的方法。通过这些方法,我们可以轻松地在 PostgreSQL 中保存和操作 JavaScript 中的时间戳数据。

希望本文对您理解如何在 PostgreSQL 中保存 JS Date.now() 的结果有所帮助!

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程