TRY_TO_TIMESTAMP
TiDB Cloud Lake における TO_TIMESTAMP のバリアントで、入力式をタイムスタンプに変換する点は同じですが、変換に失敗した場合はエラーを発生させる代わりに NULL を返すことで、エラーハンドリングをサポートします。
関連情報: TO_TIMESTAMP
構文
-- Convert a string or integer to a timestamp
TRY_TO_TIMESTAMP(<expr>)
-- Convert a string to a timestamp using the given pattern
TRY_TO_TIMESTAMP(<expr>, <pattern>)
2 つの引数が指定された場合、この関数は 1 つ目の文字列を、2 つ目の文字列で指定されたパターンに基づいてタイムスタンプに変換します。パターンを指定するには、フォーマット指定子を使用します。フォーマット指定子を使うことで、日付および時刻の値に対して目的の形式を定義できます。サポートされているフォーマット指定子の一覧については、日付と時刻の書式設定 を参照してください。
エイリアス
例
SELECT TRY_TO_TIMESTAMP('2022-01-02 02:00:11'), TRY_TO_DATETIME('2022-01-02 02:00:11');
┌──────────────────────────────────────────────────────────────────────────────────┐
│ try_to_timestamp('2022-01-02 02:00:11') │ try_to_datetime('2022-01-02 02:00:11') │
├─────────────────────────────────────────┼────────────────────────────────────────┤
│ 2022-01-02 02:00:11 │ 2022-01-02 02:00:11 │
└──────────────────────────────────────────────────────────────────────────────────┘
SELECT TRY_TO_TIMESTAMP('2024-06-12 10:21:39', '%Y-%m-%d %H:%M:%S'), TRY_TO_DATETIME('2024-06-12 10:21:39', '%Y-%m-%d %H:%M:%S');
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ try_to_timestamp('2024-06-12 10:21:39', '%y-%m-%d %h:%m:%s') │ try_to_datetime('2024-06-12 10:21:39', '%y-%m-%d %h:%m:%s') │
├──────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────┤
│ 2024-06-12 10:21:39 │ 2024-06-12 10:21:39 │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
SELECT TRY_TO_TIMESTAMP('datalake'), TRY_TO_DATETIME('datalake');
┌────────────────────────────────────────────────────────────┐
│ try_to_timestamp('datalake') │ try_to_datetime('datalake') │
├──────────────────────────────┼─────────────────────────────┤
│ NULL │ NULL │
└────────────────────────────────────────────────────────────┘
SELECT TRY_TO_TIMESTAMP('2024-06-12 10:21:39', '%y-%m-%d %H:%M:%S'), TRY_TO_DATETIME('2024-06-12 10:21:39', '%y-%m-%d %H:%M:%S');
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ try_to_timestamp('2024-06-12 10:21:39', '%y-%m-%d %h:%m:%s') │ try_to_datetime('2024-06-12 10:21:39', '%y-%m-%d %h:%m:%s') │
├──────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────┤
│ NULL │ NULL │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘