MONTH

更新时间:
复制 MD 格式

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函数属于日期函数,更多日期计算、日期转换的相关函数请参见日期函数。