📜  PostgreSQL时间戳(1)

📅  最后修改于: 2023-12-03 15:18:39.710000             🧑  作者: Mango

PostgreSQL 时间戳

PostgreSQL 时间戳是 PostgreSQL 数据库中用于表示日期和时间的一种数据类型。它可以存储从 4713 年到 294276 年之间的日期和时间。

在 PostgreSQL 中,时间戳有两种类型:带时区和不带时区。带时区的时间戳存储了与协调世界时(UTC)之间的偏移量,而不带时区的时间戳则假设时间戳是本地时间。

创建时间戳

我们可以使用 timestamptimestamptz 数据类型来创建时间戳。以下是一些示例:

CREATE TABLE my_table (
    id SERIAL PRIMARY KEY,
    created_at TIMESTAMP DEFAULT NOW(),
    updated_at TIMESTAMPTZ DEFAULT NOW()
);

此代码创建了一个名为 my_table 的表,其中包含一个名为 created_at 的不带时区的时间戳和一个名为 updated_at 的带时区的时间戳。默认值为当前时间。

查询时间戳

有几种方法可以查询 PostgreSQL 中的时间戳。以下是几个示例:

SELECT now();
SELECT current_timestamp;
SELECT date_trunc('minute', now());

第一个示例使用 now() 方法来查找当前时间戳。第二个示例使用 current_timestamp 函数来实现相同的效果。第三个示例将当前时间戳截断到分钟级别。

操作时间戳

在 PostgreSQL 中,我们可以将时间戳与常见的日期/时间函数一起使用。以下是一些示例:

SELECT created_at::date FROM my_table;
SELECT EXTRACT(epoch FROM updated_at);
SELECT created_at + interval '1 day';

第一个示例使用 :: 运算符将时间戳转换为日期类型。第二个示例使用 EXTRACT 函数提取时间戳的 Unix 时间戳。第三个示例将时间戳增加一天。

结论

PostgreSQL 的时间戳可以帮助我们轻松存储和操作日期和时间数据。无论是在开发 Web 应用程序还是跨地区的数据分析项目中,它都是一个非常有用的数据类型。