MONTH函数用于提取指定日期值date中的月份值(1~12)。
命令格式
INT MONTH(DATE|DATETIME|TIMESTAMP|TIMESTAMP_NTZ|STRING|INTERVAL <date>)
-- 标准示例。
-- 返回6。
SELECT MONTH('2025-06-19');参数说明
date:必填。支持DATE、DATETIME、TIMESTAMP、TIMESTAMP_NTZ、STRING或INTERVAL类型。
STRING类型作为输入参数时,日期格式需包含
yyyy-mm-dd。INTERVAL类型作为输入参数时,仅支持INTERVAL_YEAR_MONTH,不支持INTERVAL_DAY_TIME。详情参考INTERVAL数据类型。
返回值说明
返回INT类型。返回规则如下:
date非DATE、DATETIME、TIMESTAMP、TIMESTAMP_NTZ、STRING或INTERVAL类型,返回NULL或报错。
date值为NULL时,返回NULL。
使用示例
示例1:从标准时间中提取月份。
-- 返回3。 SELECT MONTH(DATETIME '2025-03-05 12:45:10');示例2:处理字符串时间输入。
-- 返回8。 SELECT MONTH('2025-08-16 09:20:30');示例3:从INTERVAL YEAR TO MONTH中提取“月”字段值。
-- 需开启2.0数据类型。 SET odps.sql.type.system.odps2 = true; -- 返回6。 SELECT MONTH(INTERVAL '2-6' YEAR TO MONTH);示例4:边界情况与 NULL 处理。
-- 返回NULL。 SELECT MONTH(NULL); -- 最小有效月份测试。 -- 返回1。 SELECT MONTH('2025-01-01'); -- 最大月份测试。 -- 返回12。 SELECT MONTH('2025-12-31 23:59:59');示例5:无效字符串输入。
-- 非标准格式字符串,无法解析。 -- 返回NULL。 SELECT MONTH('20250305');
相关函数
MONTH函数属于日期函数,更多日期计算、日期转换的相关函数请参见日期函数。
该文章对您有帮助吗?