INT または VARCHAR 型の日付値を DATE データの型に変換します。format を省略する場合、入力値はデフォルトのフォーマット yyyy-MM-dd に一致している必要があります。
構文
Date TO_DATE(INT time)
Date TO_DATE(VARCHAR date)
Date TO_DATE(VARCHAR date, VARCHAR format)
パラメーター
| パラメーター | データの型 | 説明 |
|---|---|---|
time |
INT | 協定世界時 (UTC) でのエポック時間(1970 年 1 月 1 日 00:00:00)からの経過日数です。たとえば、200 は 1970-07-20 になります。説明
この動作は Ververica Runtime (VVR) 8.0.6 以降でのみ適用されます。VVR 8.0.6 より前のバージョンでは、値が暗黙的に STRING に変換されます。 |
date |
VARCHAR | 日付文字列です。デフォルトのフォーマットは yyyy-MM-dd です。たとえば、'2017-09-15' です。 |
format |
VARCHAR | カスタムの日付形式パターンです。たとえば、'yyyyMMdd' や 'MMddyyyy' です。 |
注意事項
-
time(INT)パラメーターの動作は VVR のバージョンによって異なります。-
VVR 8.0.6 以降:
timeはエポック(1970 年 1 月 1 日 00:00:00 UTC)からの経過日数として解釈されます。 -
VVR 8.0.6 より前:
timeは処理前に暗黙的に STRING に変換されます。
-
-
VARCHAR 入力で
formatパラメーターを省略すると、デフォルトのフォーマットyyyy-MM-ddが適用されます。上流のデータが MySQL DATETIME(yyyy-MM-dd HH:mm:ss)など別のフォーマットを使用している場合は、実際のフォーマットに合わせてformatパラメーターを明示的に指定する必要があります。指定しない場合、解析に失敗し、1970-01-01のような不正確な結果が返されます。
使用例
以下の例では、テーブル T1 をデータソースとして使用します。
テーブル T1
| date1 (INT) | date2 (VARCHAR) | date3 (VARCHAR) | date4 (VARCHAR) | date5 (VARCHAR) |
|---|---|---|---|---|
| 200 | 2017-09-15 | 20170915 | 09152017 | 092017 |
INT 入力の変換
エポックからの経過日数を表す整数を渡します。
SELECT TO_DATE(date1) AS var1
FROM T1;
| var1 (DATE) |
|---|
| 1970-07-20 (VVR 8.0.6 以降) |
| 0200-01-01 (VVR 8.0.6 より前) |
デフォルトフォーマットを使用した VARCHAR 入力の変換
入力がすでに yyyy-MM-dd フォーマットの場合、format パラメーターを省略します。
SELECT TO_DATE(date2) AS var2
FROM T1;
| var2 (DATE) |
|---|
| 2017-09-15 |
カスタムフォーマットを使用した VARCHAR 入力の変換
入力文字列の構造に一致する format パターンを渡します。
SELECT TO_DATE(date3, 'yyyyMMdd') AS var3,
TO_DATE(date4, 'MMddyyyy') AS var4,
TO_DATE(date5, 'MMyyyy') AS var5
FROM T1;
| var3 (DATE) | var4 (DATE) | var5 (DATE) |
|---|---|---|
| 2017-09-15 | 2017-09-15 | 2017-09-01 |
次のステップ
-
TO_TIMESTAMP_TZ:指定されたタイムゾーンに基づいて VARCHAR 日付値を TIMESTAMP に変換します。
-
DATE_ADD:指定された日数を加算した後の日付を返します。