DATE_PART

从日期/时间表达式中提取子字段(如年或小时),等同于 SQL 标准函数 EXTRACT

行为类型

  • 如果指定的日期为 TIMESTAMPDATEINTERVAL,则是 不可变

  • 如果指定的日期为 TIMESTAMPTZ,则是 稳定

语法

DATE_PART ( 'field', date )

参数

field
一个常数值,指定要从 date 中提取的子字段(请参阅下文的字段值)。
date
要处理的日期,是求值结果具有以下一种数据类型的表达式:

字段值

注意

按照 ISO-8601 标准,一周的开始时间是星期一,一年的第一周包含 1 月 4 日。因此,一月初的日期有时可能会位于上一个历年的第 52 周或第 53 周。例如:

=> SELECT YEAR_ISO('01-01-2016'::DATE), WEEK_ISO('01-01-2016'), DAYOFWEEK_ISO('01-01-2016');
 YEAR_ISO | WEEK_ISO | DAYOFWEEK_ISO
----------+----------+---------------
     2015 |       53 |             5
(1 row)

示例

提取日期值:

SELECT DATE_PART('DAY', TIMESTAMP '2009-02-24 20:38:40') "Day";
  Day
-----
  24
(1 row)

提取月份值:

SELECT DATE_PART('MONTH', '2009-02-24 20:38:40'::TIMESTAMP) "Month";
  Month
-------
     2
(1 row)

提取年份值:

SELECT DATE_PART('YEAR', '2009-02-24 20:38:40'::TIMESTAMP) "Year";
  Year
------
 2009
(1 row)

提取小时:

SELECT DATE_PART('HOUR', '2009-02-24 20:38:40'::TIMESTAMP) "Hour";
  Hour
------
   20
(1 row)

提取分钟:

SELECT DATE_PART('MINUTES', '2009-02-24 20:38:40'::TIMESTAMP) "Minutes";
  Minutes
---------
      38
(1 row)

提取季度日期 (DOQ):

SELECT DATE_PART('DOQ', '2009-02-24 20:38:40'::TIMESTAMP) "DOQ";
 DOQ
-----
  55
(1 row)

另请参阅

TO_CHAR