提取函数 (EXTRACT)

功能描述

提取函数 EXTRACT(field FROM source) 用于从给定的 source 中提取指定的 field 值。该函数可以处理不同类型的日期时间表达式,包括字符串、时间戳等。

参数说明

  • field (关键词):需要提取的日期时间字段,具体选项如下:
    • YEAR, (Y, YEARS, YR, YRS) - 年份
    • QUARTER, (QTR) - 季度 (1 - 4)
    • MONTH, (MON, MONS, MONTHS) - 月份 (1 - 12)
    • WEEK, (W, WEEKS) - 表示一年中的第几个星期。需要注意的是,星期的计算是以星期一为开始,每年的第一个星期是在该年第一个大于三天的星期。在ISO对于星期的计算体系中,1月份的最初几天可能属于前一年的第52或53周,同理12月份的最后几天,可能属于下一年的第1周。例如,2005-01-02是2004年的第53周,2012-12-31是2013年的第一周。
    • DAY, (D, DAYS) - 所属月份的第几天 (1 - 31)
    • DAYOFWEEK, (DOW) - 所属星期的第几天,1 对应星期日,7 对应星期六
    • DAYOFWEEK_ISO, (DOW_ISO) - 所属星期的第几天,基于ISO 8601标准,1 对应星期一,7 对应星期日
    • DAYOFYEAR, (DOY) - 在所属年份的第几天 (1 - 365/366)
    • HOUR, (H, HOURS, HR, HRS) - 小时 (0 - 23)
    • MINUTE, (M, MIN, MINS, MINUTES) - 分钟 (0 - 59)
    • SECOND, (S, SEC, SECONDS, SECS) - 秒 (0 - 59)
  • source (日期/时间戳):输入的日期时间表达式,可以是字符串、时间戳等。

返回结果

返回结果为整数 (int)。

使用示例

以下为 EXTRACT 函数的使用示例:

-- 从字符串类型的时间戳中提取年份
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(DAY FROM DATE '2019-08-12');
-- 结果:12

-- 从当前时间戳中提取季度
SELECT EXTRACT(QUARTER FROM CURRENT_TIMESTAMP());
-- 结果:取决于当前日期

-- 从字符串类型的日期中提取所属星期的第几天(基于ISO 8601标准)
SELECT EXTRACT(DAYOFWEEK_ISO FROM DATE '2019-08-12');
-- 结果: 1

通过以上示例,您可以看到 EXTRACT 函数在不同场景下的应用。该函数可以方便地从各种输入格式中提取所需的日期时间字段,便于进行进一步的数据分析和处理。

联系我们
预约咨询
微信咨询
电话咨询