カテゴリ:

半構造化データ関数と構造化データ関数 (型述語)

IS_DATE , IS_DATE_VALUE

VARIANT 引数に DATE 値が含まれる場合は、 TRUE を返します。

IS_DATE と IS_DATE_VALUE は同義語です。

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

IS_<オブジェクト型>IS_TIMEIS_TIMESTAMP_*

構文

IS_DATE( <variant_expr> )

IS_DATE_VALUE( <variant_expr> )
Copy

引数

variant_expr

VARIANT型の値に評価される式です。

戻り値

BOOLEAN 値または NULL を返します。

  • VARIANT 値に DATE 値が含まれている場合は、 TRUE を返します。それ以外の場合は、 FALSE を返します。

  • 入力が NULL の場合は、エラーを報告せずに NULL を返します。

VARIANT 列にあるすべての DATE 値を返します。

注釈

日付値の出力形式は、 DATE_OUTPUT_FORMAT パラメーターを使用して設定されます。デフォルト設定は YYYY-MM-DD です。

VARIANT 列にさまざまな日付と時刻の値を持つテーブルを作成し、ロードします。

CREATE OR REPLACE TABLE vardttm (v VARIANT);
Copy
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'));
Copy

VARIANT の列 v に格納されている値のデータ型を表示するには、クエリで TYPEOF 関数を使用します。

SELECT v, TYPEOF(v) AS type FROM vardttm;
Copy
+---------------------------------+---------------+
| 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_DATE 関数を使用して、データ内の DATE 値を表示します。出力には DATE 値のみが返されます。TIME と TIMESTAMP 値は返されません。

SELECT v FROM vardttm WHERE IS_DATE(v);
Copy
+--------------+
| V            |
|--------------|
| "2024-02-24" |
+--------------+