九月 18, 2023
摘要:在本教程中,我们将向您介绍 PostgreSQL 的DATE_PART()
函数,该函数允许您从日期或时间值检索子字段,例如年、月、周。
目录
PostgreSQL DATE_PART 函数简介
DATE_PART()
函数从日期或时间值中提取子字段。下面说明了DATE_PART()
函数:
DATE_PART(field, source)
field
是一个标识符,用于确定从source
中提取哪部分的字段。field
的值必须位于下面提到的允许值列表中:
- century
- decade
- year
- month
- day
- hour
- minute
- second
- microseconds
- milliseconds
- dow
- doy
- epoch
- isodow
- isoyear
- timezone
- timezone_hour
- timezone_minute
source
是一个时间表达式,其计算结果为 TIMESTAMP、TIME 或 INTERVAL。如果source
的计算结果为 DATE,则该函数将转换为TIMESTAMP
。
DATE_PART()
函数返回一个双精度浮点数类型的值。
PostgreSQL DATE_PART 示例
以下示例从时间戳中提取世纪部分:
SELECT date_part('century', TIMESTAMP '2017-01-01');
date_part
-----------
21
(1 row)
要从同一时间戳中提取年份,请将 ‘year’ 传递给field
参数:
SELECT date_part('year', TIMESTAMP '2017-01-01');
date_part
-----------
2017
(1 row)
要提取季度部分,请使用以下语句:
SELECT date_part('quarter', TIMESTAMP '2017-01-01');
date_part
-----------
1
(1 row)
要获取月份,请将month
传递给DATE_PART()
函数:
SELECT date_part('month', TIMESTAMP '2017-09-30');
date_part
-----------
9
(1 row)
要从时间戳中获取十年(decade
)部分,您可以使用以下语句:
SELECT date_part('decade', TIMESTAMP '2017-09-30');
date_part
-----------
201
(1 row)
要从时间戳中提取周数,请将 ‘week’ 作为第一个参数传递:
SELECT date_part('week', TIMESTAMP '2017-09-30');
date_part
-----------
39
(1 row)
要获取当前的千年(millennium
),可使用DATE_PART()
和 NOW() 函数,如下所示:
SELECT date_part('millennium', now());
date_part
-----------
3
(1 row)
要从时间戳中提取日期(day
)部分,请将day
值传递给DATE_PART()
函数:
SELECT date_part('day', TIMESTAMP '2017-03-18 10:20:30');
date_part
-----------
18
(1 row)
要从时间戳中提取小时、分钟、秒,请将相应的hour
、minute
和second
传递给DATE_PART()
函数:
SELECT date_part('hour', TIMESTAMP '2017-03-18 10:20:30') h,
date_part('minute', TIMESTAMP '2017-03-18 10:20:30') m,
date_part('second', TIMESTAMP '2017-03-18 10:20:30') s;
h | m | s
----+----+----
10 | 20 | 30
(1 row)
要从时间戳中提取星期几和一年中的哪一天,可使用以下语句:
SELECT date_part('dow', TIMESTAMP '2017-03-18 10:20:30') dow,
date_part('doy', TIMESTAMP '2017-03-18 10:20:30') doy;
dow | doy
-----+-----
6 | 77
(1 row)
在本教程中,您学习了如何使用 PostgreSQL 的DATE_PART()
函数提取时间戳的子字段。
了解更多
PostgreSQL 教程:日期函数
PostgreSQL 文档:时间/日期函数和操作符