extract

extract

extract介绍

extract(field FROM source) - 从日期/时间戳或间隔 source 中提取 field 指定的部分。

参数:

  • field - 选择要从 source 提取的部分 对于日期和时间戳,field 支持的字符串值(不区分大小写)有: "YEAR", ("Y", "YEARS", "YR", "YRS") - 年份字段 "YEAROFWEEK" - ISO 8601 周编号年份,datetime 所在的年份。例如,2005-01-02 是2004年的第53周,因此结果是2004 "QUARTER", ("QTR") - datetime 所在的季度(1 - 4) "MONTH", ("MON", "MONS", "MONTHS") - 月份字段(1 - 12) "WEEK", ("W", "WEEKS") - ISO 8601 周编号。一周从星期一开始,第1周是一年中第一个有超过3天的一周。在 ISO 周编号系统中,1月初的日期可能是上一年的第52或53周,而12月底的日期可能是下一年的第1周。例如,2005-01-02 是2004年的第53周,而2012-12-31 是2013年的第一周 "DAY", ("D", "DAYS") - 月份中的天数字段(1 - 31) "DAYOFWEEK",("DOW") - datetime 作为一周中的星期几,星期日(1) 到星期六(7) "DAYOFWEEK_ISO",("DOW_ISO") - 根据 ISO 8601,datetime 作为一周中的星期几,星期一(1) 到星期日(7) "DOY" - 一年中的天数(1 - 365/366) "HOUR", ("H", "HOURS", "HR", "HRS") - 小时字段(0 - 23) "MINUTE", ("M", "MIN", "MINS", "MINUTES") - 分钟字段(0 - 59) "SECOND", ("S", "SEC", "SECONDS", "SECS") - 秒字段,包括小数部分

  • 对于间隔(由月、日、微秒组成),field 支持的字符串值(不区分大小写)有: "YEAR", ("Y", "YEARS", "YR", "YRS") - 总月数除以 12 的结果 "MONTH", ("MON", "MONS", "MONTHS") - 总月数除以 12 的余数 "DAY", ("D", "DAYS") - 间隔的天数部分 "HOUR", ("H", "HOURS", "HR", "HRS") - 微秒中包含的小时数 "MINUTE", ("M", "MIN", "MINS", "MINUTES") - 从微秒中减去小时后剩余的分钟数 "SECOND", ("S", "SEC", "SECONDS", "SECS") - 从微秒中减去小时和分钟后剩余的带小数的秒数

  • source - 要从中提取字段的日期/时间戳或间隔列。

Examples:

> SELECT extract(YEAR FROM TIMESTAMP '2019-08-12 01:00:00.123456');
 2019
> SELECT extract(week FROM timestamp'2019-08-12 01:00:00.123456');
 33
> SELECT extract(doy FROM DATE'2019-08-12');
 224
> SELECT extract(SECONDS FROM timestamp'2019-10-01 00:00:01.000001');
 1.000001
> SELECT extract(days FROM interval 5 days 3 hours 7 minutes);
 5
> SELECT extract(seconds FROM interval 5 hours 30 seconds 1 milliseconds 1 microseconds);
 30.001001
> SELECT extract(MONTH FROM INTERVAL '2021-11' YEAR TO MONTH);
 11
> SELECT extract(MINUTE FROM INTERVAL '123 23:55:59.002001' DAY TO SECOND);
 55

提示:

extract 函数等同于 date_part(field, source)。

Since: 3.0.0