カテゴリ:

変換関数日付と時刻の関数

TRY_TO_DATE

同じ操作を実行する(入力式を日付に変換する)が、エラー処理がサポートされている TO_DATE , DATE の特別バージョンです。(つまり、変換を実行できない場合、エラーを発生させる代わりに NULL 値を返します)。

詳細については、 エラー処理変換関数 をご参照ください。

こちらもご参照ください。

TO_DATE , DATE

構文

TRY_TO_DATE( <string_expr> [, <format> ] )
TRY_TO_DATE( '<integer>' )

引数

必須:

いずれか1つの引数

文字列式

日付の抽出元の文字列。例:「2019-01-31」。

整数

整数を含む 文字列 に評価される式。例:「15000000」。文字列の大きさに応じて、秒、ミリ秒、マイクロ秒、またはナノ秒として解釈できます。詳細については、以下の使用上の注意をご参照ください。

入力として引用符で囲まれた整数を使用することは非推奨です。

オプション:

形式

文字列式 または AUTO の日付形式指定子。これは、Snowflakeが使用する形式を自動的に検出することを指定します。詳細については、 変換関数の日付と時刻の形式 をご参照ください。

デフォルトは、 DATE_INPUT_FORMAT セッションパラメーターの現在の値です(通常は AUTO)。

戻り値

返される値のデータ型は DATE です。

使用上の注意

  • 入力パラメーターの形式が整数を含む文字列の場合:

    • 文字列が整数に変換された後、Unixエポックの開始後の秒数、ミリ秒、マイクロ秒、またはナノ秒として整数が扱われます(1970-01-01 00:00:00.000000000 UTC)。

      • 整数が31536000000(1年のミリ秒数)より小さい場合、値は秒数として扱われます。

      • 値が31536000000以上で31536000000000未満の場合、値はミリ秒として扱われます。

      • 値が31536000000000以上で31536000000000000より小さい場合、値はマイクロ秒として扱われます。

      • 値が31536000000000000以上の場合、値はナノ秒として扱われます。

      ご用心

      現在、負の値は常に秒として扱われます。例えば、-31536000000000000000は1970年の前の秒数として扱われますが、そのスケールは、ナノ秒として使用することを意図していることを示しています。

      この動作は将来変更される可能性があります。

      ご用心

      非推奨の警告: Snowflakeの将来のバージョンでは、文字列化された整数値をミリ秒、マイクロ秒、ナノ秒ではなく、秒として自動的に解釈する可能性があります。Snowflakeは、整数が秒として解釈されることが意図されている場合にのみ、整数を含む文字列でTO_DATE、TO_TIMEまたはTO_TIMESTAMPを呼び出すことをお勧めします。

    • 複数の行が評価される場合(例えば、入力が3つ以上の行を含むテーブルの列名である場合)、最初に処理される値は、後続のすべての値が秒、ミリ秒、マイクロ秒、またはナノ秒として扱われるかどうかを決定します。

      最初の値が31536000000以上の場合、残りの値が31536000000未満であっても、すべての値はミリ秒として扱われます。同様のロジックがマイクロ秒とナノ秒に適用されます。

これは TRY_TO_DATE の使用方法を示しています。

SELECT TRY_TO_DATE('2018-09-15'), TRY_TO_DATE('Invalid');
+---------------------------+------------------------+
| TRY_TO_DATE('2018-09-15') | TRY_TO_DATE('INVALID') |
|---------------------------+------------------------|
| 2018-09-15                | NULL                   |
+---------------------------+------------------------+