- カテゴリ:
半構造化データ関数と構造化データ関数 (型述語)
IS_TIMESTAMP_*¶
VARIANT 引数にそれぞれの タイムスタンプ 値が含まれるかどうかを検証します。
IS_TIMESTAMP_LTZ (ローカルタイムゾーンのある値)。
IS_TIMESTAMP_NTZ (タイムゾーンのない値)。
IS_TIMESTAMP_TZ (タイムゾーンのある値)。
- こちらもご参照ください。
構文¶
IS_TIMESTAMP_LTZ( <variant_expr> )
IS_TIMESTAMP_NTZ( <variant_expr> )
IS_TIMESTAMP_TZ( <variant_expr> )
引数¶
variant_expr
VARIANT型の値に評価される式です。
戻り値¶
BOOLEAN 値または NULL を返します。
VARIANT 値にタイムスタンプが含まれている場合は、 TRUE を返します。それ以外の場合は、 FALSE を返します。
入力が NULL の場合は、エラーを報告せずに NULL を返します。
例¶
VARIANT 列にすべてのタイムスタンプを表示し、セッションに指定されたタイムゾーンを使用して出力します。
注釈
タイムゾーンの出力形式はパラメーターを使用して設定します。
TIMESTAMP_LTZ_OUTPUT_FORMAT パラメーターは、 TIMESTAMP_LTZ 値の形式を設定します。
TIMESTAMP_NTZ_OUTPUT_FORMAT パラメーターは、 TIMESTAMP_NTZ 値の形式を設定します。
TIMESTAMP_TZ_OUTPUT_FORMAT パラメーターは、 TIMESTAMP_TZ 値の形式を設定します。
この例では、ローカルタイムゾーンは US 太平洋標準時(GMT/UCT に対して-08:00)です。
VARIANT 列にさまざまな日付と時刻の値を持つテーブルを作成し、ロードします。
CREATE OR REPLACE TABLE vardttm (v VARIANT);
INSERT INTO vardttm SELECT TO_VARIANT(TO_DATE('2024-02-24'));
INSERT INTO vardttm SELECT TO_VARIANT(TO_TIME('20:57:01.123456789+07:00'));
INSERT INTO vardttm SELECT TO_VARIANT(TO_TIMESTAMP('2023-02-24 12:00:00.456'));
INSERT INTO vardttm SELECT TO_VARIANT(TO_TIMESTAMP_LTZ('2022-02-24 13:00:00.123 +01:00'));
INSERT INTO vardttm SELECT TO_VARIANT(TO_TIMESTAMP_NTZ('2021-02-24 14:00:00.123 +01:00'));
INSERT INTO vardttm SELECT TO_VARIANT(TO_TIMESTAMP_TZ('2020-02-24 15:00:00.123 +01:00'));
VARIANT の列 v
に格納されている値のデータ型を表示するには、クエリで TYPEOF 関数を使用します。
SELECT v, TYPEOF(v) AS type FROM vardttm;
+---------------------------------+---------------+
| V | TYPE |
|---------------------------------+---------------|
| "2024-02-24" | DATE |
| "20:57:01" | TIME |
| "2023-02-24 12:00:00.456" | TIMESTAMP_NTZ |
| "2022-02-24 04:00:00.123 -0800" | TIMESTAMP_LTZ |
| "2021-02-24 14:00:00.123" | TIMESTAMP_NTZ |
| "2020-02-24 15:00:00.123 +0100" | TIMESTAMP_TZ |
+---------------------------------+---------------+
WHERE 句で IS_TIMESTAMP_NTZ 関数を使用して、データ内の TIMESTAMP_NTZ 値を表示します。
SELECT * FROM vardttm WHERE IS_TIMESTAMP_NTZ(v);
+---------------------------+
| V |
|---------------------------|
| "2023-02-24 12:00:00.456" |
| "2021-02-24 14:00:00.123" |
+---------------------------+
WHERE 句で IS_TIMESTAMP_LTZ 関数を使用して、データ内の TIMESTAMP_LTZ 値を表示します。
SELECT * FROM vardttm WHERE IS_TIMESTAMP_LTZ(v);
+---------------------------------+
| V |
|---------------------------------|
| "2022-02-24 04:00:00.123 -0800" |
+---------------------------------+
WHERE 句で IS_TIMESTAMP_TZ 関数を使用して、データ内の TIMESTAMP_TZ 値を表示します。
SELECT * FROM vardttm WHERE IS_TIMESTAMP_TZ(v);
+---------------------------------+
| V |
|---------------------------------|
| "2020-02-24 15:00:00.123 +0100" |
+---------------------------------+