DATEDIF-日期差

  • 文檔創建者:Roxy
  • 編輯次數:6
  • 最近更新:Nikozhan 于 2025-07-09
  • 1. 概述

    文法
    DATEDIF(正文/開始日期, 正文/結束日期, 單位)傳回兩個指定日期間的天數、月數或年數
         參數1正文/開始日期

    開始日期:代表所指定時間段的初始日期

    結束日期:代表所指定時間段的終止日期

         參數2正文/結束日期
        參數3單位

    函式傳回資訊的類

    • 單位=“Y/y”,則傳回年差數

    • 單位=“M/m”,則傳回月差數

    • 單位=“W/w”,則傳回週差數

    • 單位=“D/d”,則傳回日差數

    • 單位=“MD/md”,則忽略年和月,傳回日差數

    • 單位=“YM/ym”,則忽略年和日,傳回月差數

    • 單位=“YD/yd”,則忽略年,傳回日差數

    • 單位=“H”,則忽略年,傳回時差數

    • 單位=“mi”,則忽略年,傳回分差數

    • 單位=“S”,則忽略年,傳回秒差數

    單位要求是常數,不支援欄位,可以輸入參數

    注1:4.0.30 及之後版本支援透過 DATEDIF 函式算出兩個時間相差的週/小時/分鐘/秒數;若兩個時間差小於 1 週/小時/分鐘/秒,則結果是0

    注2:若使用該函式計算指定日期間的月數,不足一月時不想捨去,可使用 Spark SQL 的 months_between 函式

    2. 注意事項

    • 如果參數中有NULL,則結果為NULL

    3. 範例

    公式結果
    備註
    DATEDIF("2001/2/28","2004/3/20","Y")3,即在2001年2月28日與2004年3月20日之間有3個整年
    DATEDIF("2001/2/28","2004/3/20","M")37,即在2001年2月28日與2004年3月20日之間有36個整月
    DATEDIF("2001/2/28","2004/3/20","D")1116,即在2001年2月28日與2004年3月20日之間有1116個整天
    DATEDIF("2001/2/28","2004/3/20","md")8,即忽略月和年後,2001年2月28日與2004年3月20日的差為8天
    DATEDIF("2001/1/28","2004/3/20","YM")2,即忽略日和年後,2001年1月28日與2004年3月20日的差為2個月
    DATEDIF("2001/2/28","2004/3/20","yd")21,即忽略年後,2001年2月28日與2004年3月20日的差為21天

    想要計算兩個日期欄位之間的間隔天數,例如「到貨日期」和「訂購日期」之間的間隔天數,新增一個欄位,用 DATE 函式計算兩者的天數,公式為:DATEDIF(訂購日期,到貨日期,"D"),如下圖所示:

    計算後的日期差如下圖所示:

    附件列表


    主題: 資料開發-定時任務
    已經是第一篇
    已經是最後一篇
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    10s後關閉

    獲取幫助
    線上支援
    獲取專業技術支援,快速幫助您解決問題
    工作日9:00-12:00,13:30-17:30在线
    頁面反饋
    針對當前網頁的建議、問題反饋
    售前咨詢
    業務咨詢
    電話:0933-790886或 0989-092892
    郵箱:taiwan@fanruan.com
    頁面反饋
    *問題分類
    不能為空
    問題描述
    0/1000
    不能為空

    反馈已提交

    网络繁忙