PostgreSQL 教程: extract 函数 | 您所在的位置:网站首页 › 提取年月份函数 › PostgreSQL 教程: extract 函数 |
PostgreSQL 的EXTRACT()函数从日期/时间值中提取年、月、日等字段。 语法下面说明了EXTRACT()函数的语法: EXTRACT(field FROM source) 参数PostgreSQL 的EXTRACT()函数需要两个参数: 1) field field参数指定从日期/时间值中提取哪个字段。 下表说明了有效的字段值: 字段值 时间戳 间隔 CENTURY 世纪 世纪数 DAY 一月中的第几天 (1-31) 天数 DECADE 年份除以 10 得到的十年 与时间戳相同 DOW 星期几,星期日 (0) 至星期六 (6) 不适用 DOY 一年中的第几天,范围从 1 到 366 不适用 EPOCH 自 1970-01-01 00:00:00 UTC 以来的秒数 间隔内的总秒数 HOUR 小时 (0-23) 小时数 ISODOW 基于 ISO 8601 的星期几,星期一 (1) 至星期日 (7) 不适用 ISOYEAR 基于 ISO 8601 的一年中的第几周 不适用 MICROSECONDS 秒字段,包括小数部分,乘以 1000000 与时间戳相同 MILLENNIUM 几千年 千年数 MILLISECONDS 秒字段,包括小数部分,乘以 1000 与时间戳相同 MINUTE 分钟 (0-59) 分钟数 MONTH 月份,1-12 月数,取模 (0-11) QUARTER 一年中的季度 季度数 SECOND 秒 秒数 TIMEZONE 与 UTC 的时区偏移量,以秒为单位 不适用 TIMEZONE_HOUR 时区偏移量的小时部分 不适用 TIMEZONE_MINUTE 时区偏移量的分钟部分 不适用 WEEK ISO 8601 周编号的一年中的第几周 不适用 YEAR 年份 与时间戳相同2) source source是TIMESTAMP或INTERVAL类型的值。如果传递一个DATE值,该函数会将其转换为一个TIMESTAMP值。 返回值EXTRACT()函数返回一个双精度浮点数值。 示例A) 从时间戳中提取的示例 从时间戳中提取年份: SELECT EXTRACT(YEAR FROM TIMESTAMP '2016-12-31 13:30:15');结果如下: 2016从时间戳中提取季度: SELECT EXTRACT(QUARTER FROM TIMESTAMP '2016-12-31 13:30:15');结果是 4从时间戳中提取月份: SELECT EXTRACT(MONTH FROM TIMESTAMP '2016-12-31 13:30:15');结果如下: 12从时间戳中提取日: SELECT EXTRACT(DAY FROM TIMESTAMP '2016-12-31 13:30:15');这是结果: 31 从时间戳中提取世纪: SELECT EXTRACT(CENTURY FROM TIMESTAMP '2016-12-31 13:30:15');正如预期的那样,它返回了 21: 21从时间戳中提取十年: SELECT EXTRACT(DECADE FROM TIMESTAMP '2016-12-31 13:30:15');结果如下: 201从时间戳中提取星期几: SELECT EXTRACT(DOW FROM TIMESTAMP '2016-12-31 13:30:15');结果是: 6从时间戳中提取一年中的第几天: SELECT EXTRACT(DOY FROM TIMESTAMP '2016-12-31 13:30:15');它返回 366: 366从时间戳中提取自 1970-01-01 00:00:00 UTC 以来的秒数: SELECT EXTRACT(EPOCH FROM TIMESTAMP '2016-12-31 13:30:15');结果是: 1483191015从时间戳中提取小时部分: SELECT EXTRACT(HOUR FROM TIMESTAMP '2016-12-31 13:30:15');结果: 13从时间戳中提取分钟部分: SELECT EXTRACT(MINUTE FROM TIMESTAMP '2016-12-31 13:30:15');结果如下: 30从时间戳中提取秒部分: SELECT EXTRACT(SECOND FROM TIMESTAMP '2016-12-31 13:30:15.45');结果包括秒及其小数部分: 15.45根据 ISO 8601 提取工作日: SELECT EXTRACT(ISODOW FROM TIMESTAMP '2016-12-31 13:30:15');从时间戳中提取毫秒: SELECT EXTRACT(MILLISECONDS FROM TIMESTAMP '2016-12-31 13:30:15');结果是 15 * 1000 = 15000 15000从时间戳中提取微秒: SELECT EXTRACT(MICROSECONDS FROM TIMESTAMP '2016-12-31 13:30:15');结果是 15 * 1000000 = 15000000 15000000B) 从间隔值中提取的示例 从间隔值中提取年份: SELECT EXTRACT(YEAR FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );结果 6从间隔值中提取季度: SELECT EXTRACT(QUARTER FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );结果 2从间隔值中提取月份: SELECT EXTRACT(MONTH FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );结果 5从间隔值中提取日: SELECT EXTRACT(DAY FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );结果 4从间隔值中提取小时部分: SELECT EXTRACT(HOUR FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );结果 3从间隔值中提取分钟部分: SELECT EXTRACT(MINUTE FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );结果 2从间隔值中提取秒数部分: SELECT EXTRACT(SECOND FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );结果 1从间隔值中提取毫秒: SELECT EXTRACT(MILLISECONDS FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );结果 1000从间隔值中提取微秒: SELECT EXTRACT(MICROSECONDS FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );结果 1000000从间隔值中提取十年: SELECT EXTRACT(DECADE FROM INTERVAL '60 years 5 months 4 days 3 hours 2 minutes 1 second' );结果 60从间隔值中提取千年: SELECT EXTRACT(MILLENNIUM FROM INTERVAL '1999 years 5 months 4 days 3 hours 2 minutes 1 second' );结果 1从间隔值中提取世纪: SELECT EXTRACT(CENTURY FROM INTERVAL '1999 years 5 months 4 days 3 hours 2 minutes 1 second' );结果 19在本教程中,您学习了如何从日期/时间或间隔值中提取字段。 |
CopyRight 2018-2019 实验室设备网 版权所有 |