如何在DataWorks V2.0 的 ODPS SQL任務中使用排程引數
在ODPS SQL 中使用排程引數
DataWorks的排程引數分為兩種,一種是系統排程引數,另一種是自定義點都引數。
系統排程引數只有兩個:
bizdate:獲取到業務日期,展示格式為:yyyymmdd;
cyctime:獲取到任務例項的定時時間,格式為:yyyymmddhh24miss;
在SQL節點中使用系統排程引數
以下是在SQL程式碼中的用法,並設定該任務的定時執行時間為00:23分。

請注意:當代碼中使用了排程引數,在介面上直接執行的時候,需要傳入一個具體的值,因為直接執行不會經過排程系統,所以引數不會轉換,需要輸入一個具體的值,該值僅本次執行有效。

當任務提交後,點選冒煙測試執行,選擇傳入的業務日期時間,點選確認。

執行結果如下:

可以看到,時間都已經被替換了,bizdate獲取到了我們傳入的業務日期,cyctime獲取到了任務的定時時間。
在SQL中使用自定義排程引數
DataWorks 除了支援系統預設排程引數外,還支援自定義排程引數,可以對時間的展示格式進行選擇,而且可以在時間數值上進行相加減。
使用自定義排程引數的方法還是一樣,先在程式碼中宣告變數,然後給變數賦值。

執行結果如下:

特別注意:花括號和中括號的用途

若對時間表達式的格式有要求,可自行修改,比如:$[yyyy-mm-dd],
注意,如果是DATETIME格式,請拆開成兩個變數組合一下,中間用空格隔開。

在給引數賦值時,$[] 中寫時間表達式即可。
獲取+/-週期的方法:
後N年:$[yyyy+N]
前N年:$[yyyy-N]
後N月:$[yyyymm+N]
前N月:$[yyyymm-N]
後N周:$[yyyymmdd+7*N]
前N周:$[yyyymmdd-7*N]
後N天:$[yyyymmdd+N]
前N天:$[yyyymmdd-N]
後N小時:$[yyyymmddhh24miss+N/24]
前N小時:$[yyyymmddhh24miss-N/24]
後N分鐘:$[yyyymmddhh24miss+N/60/24]
前N分鐘:$[yyyymmddhh24miss-N/60/24]
關於在SQL中使用排程引數,還有任何疑問,可以加入DataWorks的釘釘群,群號如下:
DataWorks數加交流0群(群號:11718465)