EXTRACT 函数

EXTRACT 函数从日期时间值和时间间隔中抽取字段(或计算值)。

对于 YEAR、MONTH、DAY、HOUR、MINUTE、DAYS、DAYOFYEAR、DAYOFWEEK、MONTHS、QUARTEROFYEAR、QUARTERS、WEEKS、WEEKOFYEAR 以及 WEEKOFMONTH,抽取的结果是 INTEGER,但对于 SECOND,抽取的结果是 FLOAT,对于 ISLEAPYEAR,抽取的结果是 BOOLEAN。如果 SourceDate 为 NULL,则无论对于哪种抽取类型,结果都是 NULL。

语法

EXTRACT 从日期时间值和时间间隔抽取单独的字段。您只能抽取日期时间值中存在的字段,日期时间值由第二个参数指定。如果数据类型中不存在请求的字段,则生成解析时或运行时错误。

下表中描述了 V6.0 中支持的抽取:
注: 所有新整数值均从 1 开始。
表 1.
抽取 描述
YEAR
MONTH
DAY
HOUR 小时
MINUTE 分钟
SECOND
DAYS 0001 年 1 月 1 日和 SourceDate 之间的天数。
DAYOFYEAR 一年中的日期
DAYOFWEEK 一周中的日期:星期日 = 1,星期一 = 2,星期二 = 3,星期三 = 4,星期四 = 5,星期五 = 6,星期六 = 7。
MONTHS 0001 年 1 月 1 日和 SourceDate 之间的月数。
QUARTEROFYEAR 一年中的季度:一月到三月 = 1,四月到六月 = 2,七月到九月 = 3,十月到十二月 = 4。
QUARTERS 0001 年 1 月 1 日和 SourceDate 之间的季度数。
WEEKS 0001 年 1 月 1 日和 SourceDate 之间的周数。
WEEKOFYEAR 一年中的周
WEEKOFMONTH 一月中的周
ISLEAPYEAR 是否为润年
注:
  1. 一周被定义为星期日到星期六,而不是任何 7 个连续的日期。如有必要,必须转换为备用表示模式。
  2. 源日期时间戳记是 0001 年 1 月 1 日。戳记前面的日期对此函数无效。
  3. 假设使用阳历计算。

示例

EXTRACT(YEAR FROM CURRENT_DATE)
EXTRACT(HOUR FROM LOCAL_TIMEZONE)
都可以正确执行,但
EXTRACT(DAY FROM CURRENT_TIME)
失败。
EXTRACT (DAYS FROM DATE '2000-02-29')
计算 0001 年到 '2000-02-29' 之间的天数,而
EXTRACT (DAYOFYEAR FROM CURRENT_DATE)
计算今年开始以来的天数,但
EXTRACT (DAYOFYEAR FROM CURRENT_TIME)
失败,因为 CURRENT_TIME 未包含日期信息。
相关概念
ESQL 概述
相关任务
正在开发 ESQL
相关参考
语法图:可用类型
ESQL 日期时间函数
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ak05420_