EXTRACT
📄字数 685
👁️阅读量 加载中...
功能描述
从 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类型时,返回值只精确到毫秒。
示例
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 |
+-------+