カテゴリ:

変換関数

TRY_TO_TIMESTAMP / TRY_TO_TIMESTAMP_*

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

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

注釈

TRY_TO_TIMESTAMP TIMESTAMP_TYPE_MAPPING セッションパラメータに基づいて、他のタイムスタンプ関数の1つにマッピングします。パラメータのデフォルトはTIMESTAMP_NTZであるため、TRY_TO_TIMESTAMPはデフォルトでTRY_TO_TIMESTAMP_NTZにマッピングされます。

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

TO_TIMESTAMP / TO_TIMESTAMP_*

構文

timestampFunction ( <string_expr> [, <format> ] )
timestampFunction ( '<integer>' )
Copy

条件:

timestampFunction ::=
    TRY_TO_TIMESTAMP | TRY_TO_TIMESTAMP_LTZ | TRY_TO_TIMESTAMP_NTZ | TRY_TO_TIMESTAMP_TZ
Copy

引数

必須:

次のいずれか:

string_expr

TIMESTAMP (TIMESTAMP_NTZ、 TIMESTAMP_LTZ、または TIMESTAMP_TZ)に評価できる文字列。

'integer'

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

オプション:

format

string_expr または AUTO のフォーマット指定子。詳細については、 変換関数の日付と時刻の形式 をご参照ください。

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

戻り値

返される値のデータ型は、 TIMESTAMP データ型のいずれかです。デフォルトでは、データ型は TIMESTAMP_NTZ です。これを変更するには、セッションパラメーター TIMESTAMP_TYPE_MAPPING を設定します。

使用上の注意

  • タイムゾーンのあるタイムスタンプの場合、 TIMEZONE パラメーターの設定は戻り値に影響します。返されるタイムスタンプは、セッションのタイムゾーンです。

  • 出力のタイムスタンプの表示形式は、関数(TIMESTAMP_OUTPUT_FORMATTIMESTAMP_LTZ_OUTPUT_FORMATTIMESTAMP_NTZ_OUTPUT_FORMAT、 または TIMESTAMP_TZ_OUTPUT_FORMAT)に対応するタイムスタンプ出力形式によって決定されます。

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

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

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

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

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

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

    • 複数の行が評価される場合(例: 入力が複数の行を含むテーブルの列名である場合)、値が秒、ミリ秒、マイクロ秒、またはナノ秒を表しているかどうかを判断するために、各値が個別に検査されます。

  • TO_TIMESTAMP_NTZ または TRY_TO_TIMESTAMP_NTZ 関数を使用してタイムゾーン情報を含むタイムスタンプを変換すると、タイムゾーン情報が失われます。タイムスタンプをタイムゾーン情報付きのタイムスタンプに変換し直すと(例: TO_TIMESTAMP_TZ を使用して)、タイムゾーン情報は復元できません。

この例では、 TRY_TO_TIMESTAMP を使用します。

SELECT TRY_TO_TIMESTAMP('2024-01-15 12:30:00'), TRY_TO_TIMESTAMP('Invalid');
Copy
+-----------------------------------------+-----------------------------+
| TRY_TO_TIMESTAMP('2024-01-15 12:30:00') | TRY_TO_TIMESTAMP('INVALID') |
|-----------------------------------------+-----------------------------|
| 2024-01-15 12:30:00.000                 | NULL                        |
+-----------------------------------------+-----------------------------+

入力式をタイムスタンプに変換する例については、 TO_TIMESTAMP / TO_TIMESTAMP_* をご参照ください。