このトピックでは、DATEDIFF関数の使用方法について説明します。この関数は、2つの日付値の差を計算します。
制限事項
この関数は、Ververica Runtime(VVR) 3.0.0以降を使用するRealtime Compute for Apache Flinkでのみサポートされています。
構文
INT DATEDIFF(VARCHAR enddate, VARCHAR startdate)
INT DATEDIFF(TIMESTAMP enddate, VARCHAR startdate)
INT DATEDIFF(VARCHAR enddate, TIMESTAMP startdate)
INT DATEDIFF(TIMESTAMP enddate, TIMESTAMP startdate)入力パラメーター
パラメーター | データ型 |
startdate | TIMESTAMPまたはVARCHAR |
enddate | TIMESTAMPまたはVARCHAR |
説明
VARCHAR型の日付は、yyyy-MM-dd または yyyy-MM-dd HH:mm:ss 形式です。
入力パラメーターがNULLの場合、または解析エラーが発生した場合は、NULLが返されます。
例
テストデータ
datetime1(VARCHAR)
datetime2(VARCHAR)
nullstr(VARCHAR)
2017-10-15 00:00:00
2017-09-15 00:00:00
NULL
テストステートメント
SELECT DATEDIFF(datetime1, datetime2) as int1, DATEDIFF(TIMESTAMP '2017-10-15 23:00:00',datetime2) as int2, DATEDIFF(datetime2,TIMESTAMP '2017-10-15 23:00:00') as int3, DATEDIFF(datetime2,nullstr) as int4, DATEDIFF(nullstr,TIMESTAMP '2017-10-15 23:00:00') as int5, DATEDIFF(nullstr,datetime2) as int6, DATEDIFF(TIMESTAMP '2017-10-15 23:00:00',TIMESTAMP '2017-9-15 00:00:00')as int7 FROM T1;テスト結果
int1(INT)
int2(INT)
int3(INT)
int4(INT)
int5(INT)
int6(INT)
int7(INT)
30
30
-30
NULL
NULL
NULL
30