📜  postgres 从时间戳中提取时间 (1)

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

Postgres 从时间戳中提取时间

在 Postgres 中,可以使用 to_timestamp 函数将时间戳(UNIX 时间戳或 Epoch 时间戳)转换为 timestamp 类型,然后使用内置函数来从中提取时间部分。

转换时间戳为 timestamp 类型
SELECT to_timestamp(1620081161);

将会返回 2021-05-04 07:26:01+08,其中 1620081161 是一个 UNIX 时间戳。

SELECT to_timestamp(1620081161000/1000.0);

将会返回 2021-05-04 07:26:01+08,其中 1620081161000/1000.0 是 Epoch 时间戳。

提取时间部分

Postgres 内置函数可以用来从 timestamp 类型的时间戳中提取时间。下面是一些常见的函数。

1. 提取小时
SELECT EXTRACT(hour FROM to_timestamp(1620081161));

将会返回 7,表示时间戳 1620081161 对应的是 7 点钟。

2. 提取分钟
SELECT EXTRACT(minute FROM to_timestamp(1620081161));

将会返回 26,表示时间戳 1620081161 对应的是 26 分钟。

3. 提取秒
SELECT EXTRACT(second FROM to_timestamp(1620081161));

将会返回 1,表示时间戳 1620081161 对应的是 1 秒。

4. 提取毫秒
SELECT EXTRACT(milliseconds FROM to_timestamp(1620081161000/1000.0));

将会返回 0.0,表示 Epoch 时间戳 1620081161000 对应的是整秒,没有毫秒部分。

总结

本文介绍了如何从 Postgres 中的时间戳中提取时间部分。通过使用 to_timestamp 函数将时间戳转换为 timestamp 类型,然后使用内置函数来提取时间部分。常见的函数包括 EXTRACT(hour FROM timestamp)EXTRACT(minute FROM timestamp)EXTRACT(second FROM timestamp)EXTRACT(milliseconds FROM timestamp)