全部產品
Search
文件中心

MaxCompute:LAST_DAY

更新時間:Nov 25, 2025

LAST_DAY函數用於計算日期date所在時間單位date_part最後一天的日期。

命令格式

DATE|STRING LAST_DAY(DATE|DATETIME|TIMESTAMP|TIMESTAMP_NTZ|STRING <date>[, STRING <date_part>])

-- 標準樣本。
-- 返回2025-10-31。
SELECT LAST_DAY('2025-10-01');

參數說明

  • date:必填。DATE、DATETIME、TIMESTAMP、TIMESTAMP_NTZ或STRING類型日期值。

    STRING類型作為輸入參數時,日期格式需包含yyyy-mm-dd

  • date_part:選填。STRING類型常量。指定計算的時間單位。若未填,預設返回該日期所在月份的最後一天日期。此欄位支援的取值有:

    時間單位

    取值

    yearyyyy

    ISO年

    isoyear採用ISO 8601周編號年邊界。ISO年的邊界是第一周的星期一,星期四屬於相應的西曆年。

    季度

    quarterq

    monthmonmm

    • week:以周一為一周的第一天,等效於week(monday)

    • week(weekday):以指定的星期幾(weekday)為一周的第一天。

      有效取值:周日(SUNDAY)、周一(MONDAY)、周二(TUESDAY)、周三(WEDNESDAY)、周四(THURSDAY)、周五(FRIDAY)以及周六(SATURDAY)。

    ISO周

    isoweek採用ISO 8601所規定的周邊界。ISO標準下的周從周一開始算起。

傳回值說明

返回DATE或STRING類型。返回規則如下:

  • 當指定date_part時,返回DATE類型的日期值;未指定date_part時,返回STRING類型日期值。返回格式為yyyy-mm-dd

  • date非DATE、DATETIME、TIMESTAMP、TIMESTAMP_NTZ或STRING類型,或格式不符合要求時,返回NULL或報錯。

  • date值為NULL時,返回報錯。

使用樣本

  • 樣本1:基礎日期輸入。

    -- 返回2025-03-31。
    SELECT LAST_DAY('2025-03-04');
    
    -- 返回2025-07-31。
    SELECT LAST_DAY('2025-07-04 11:40:00');
  • 樣本2:傳入NULL值或無效字串。

    -- 返回報錯。
    SELECT LAST_DAY(NULL,'isoyear');
    
    -- 返回NULL。
    SELECT LAST_DAY('20250304'); 
  • 樣本3:指定時間單位,取值例如'MONTH'、'YEAR'、'QUARTER'。

    -- 返回2025-03-31。
    SELECT LAST_DAY('2025-03-27 11:40:00','MONTH');
    
    -- 返回2025-12-31。
    SELECT LAST_DAY(DATETIME '2025-03-27 11:40:00','YEAR');
    
    -- 返回2025-03-31。
    SELECT LAST_DAY(DATETIME '2025-03-27 11:40:00','QUARTER');
  • 樣本4:week、isoweek參數值對比。

    SELECT LAST_DAY('2025-06-27 11:40:00','week(sunday)') AS ld_week_sunday,
           LAST_DAY('2025-06-27 11:40:00','isoweek') AS ld_isoweek,
           LAST_DAY('2025-06-27 11:40:00','week') AS ld_week,
           LAST_DAY('2025-06-27 11:40:00','week(monday)') AS ld_week_monday;
           
    -- 返回結果。
    +----------------+------------+------------+----------------+
    | ld_week_sunday | ld_isoweek | ld_week    | ld_week_monday | 
    +----------------+------------+------------+----------------+
    | 2025-06-28     | 2025-06-29 | 2025-06-29 | 2025-06-29     | 
    +----------------+------------+------------+----------------+

相關函數

LAST_DAY函數屬於日期函數,更多日期計算、日期轉換的相關函數請參見日期函數