📅  最后修改于: 2023-12-03 15:18:39.710000             🧑  作者: Mango
PostgreSQL 时间戳是 PostgreSQL 数据库中用于表示日期和时间的一种数据类型。它可以存储从 4713 年到 294276 年之间的日期和时间。
在 PostgreSQL 中,时间戳有两种类型:带时区和不带时区。带时区的时间戳存储了与协调世界时(UTC)之间的偏移量,而不带时区的时间戳则假设时间戳是本地时间。
我们可以使用 timestamp
或 timestamptz
数据类型来创建时间戳。以下是一些示例:
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 应用程序还是跨地区的数据分析项目中,它都是一个非常有用的数据类型。