Skip to content

适用虚谷数据库版本

v12.10.13



适用虚谷数据库版本

v12.10.13


EXTRACT ​

📄字数 800
👁️阅读量 加载中...

功能描述 ​

从 expr 中提取指定时间内容。

语法格式 ​

sql
EXTRACT(unit FROM expr)

输入参数 ​

  • unit:要提取的指定时间类型关键字,可选值包括 YEAR、MONTH、DAY、HOUR、MINUTE、SECOND;
  • expr:时间日期类型表达式。

提示

  • 因 NULL 无具体的类型,所以当参数 expr 为 NULL 时,会产生异常 E10100 候选函数出现多义性,需要手动为参数指定具体的类型,如:EXTRACT(YEAR FROM NULL::DATE)。

输出结果 ​

  • 提取出的指定时间内容,输入参数 unit 的值为 SECOND 时返回值类型为 DOUBLE,其余值(YEAR、MONTH、DAY、HOUR、MINUTE)的返回值类型均为 INTEGER;
  • 输入参数 expr 为 NULL 时,输出结果为 NULL;
  • 返回值范围:
    • unit 为 YEAR 时返回值范围为 [1,9999];
    • unit 为 MONTH 时返回值范围为 [1,12];
    • unit 为 DAY 时返回值范围为 [1,31];
    • unit 为 HOUR 时返回值范围为 [0,23];
    • unit 为 MINUTE 时返回值范围为 [0,59];
    • unit 为 SECOND 时返回值范围为 [0,59.999999]。

提示

  • 因 TIME 类型精确到毫秒,所以当输入参数 unit 的值为 SECOND,expr 为 TIME 或 TIME WITH TIME ZONE类型时,返回值只精确到毫秒。

执行类型 ​

TYPEVALUE说明
NATIVE0函数只能在本地计算
VOLATI0函数的每次计算值不同
STABLE0函数的每次计算值相同
COMPUTE0函数支持预计算取值
NOT_CONST0函数不支持转常数
HAVE_DEF0函数参数有默认值

示例 ​

sql
-- 提取时间常量的HOUR内容
SQL> SELECT EXTRACT(HOUR FROM '2025-05-05 15:08:50') FROM DUAL;

+-------+
| EXPR1 |
+-------+
| 15    |
+-------+

-- 提取时间常量的MONTH内容
SQL> SELECT EXTRACT(MONTH FROM '2025-06-19') FROM DUAL;

+-------+
| EXPR1 |
+-------+
| 6     |
+-------+