类别:

半结构化和结构化数据函数 (类型谓词)

IS_TIMESTAMP_*

验证 VARIANT 实参是否包含相应的 时间戳 值:

  • IS_TIMESTAMP_LTZ (具有本地时区的值)。

  • IS_TIMESTAMP_NTZ (不带时区的值)。

  • IS_TIMESTAMP_TZ (带时区的值)。

另请参阅:

IS_<object_type>IS_DATE、IS_DATE_VALUEIS_TIME

语法

IS_TIMESTAMP_LTZ( <variant_expr> )

IS_TIMESTAMP_NTZ( <variant_expr> )

IS_TIMESTAMP_TZ( <variant_expr> )
Copy

实参

variant_expr

VARIANT 类型值计算的表达式。

返回

返回 BOOLEAN 值或 NULL。

  • 如果 VARIANT 值包含时间戳,则返回 TRUE。否则返回 FALSE。

  • 如果输入为 NULL,则返回 NULL,不报错。

示例

在 VARIANT 列中显示所有时间戳,输出使用为会话指定的时区。

备注

时区的输出格式会使用参数进行设置:

在这些示例中,本地时区为 US 太平洋标准时间(相对于 GMT/UCT 为 -08:00)。

在 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

在查询中使用 TYPEOF 函数来显示存储在 VARIANT 列 v 中的值的数据类型:

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_TIMESTAMP_NTZ 函数来显示数据中的 TIMESTAMP_NTZ 值:

SELECT * FROM vardttm WHERE IS_TIMESTAMP_NTZ(v);
Copy
+---------------------------+
| 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);
Copy
+---------------------------------+
| V                               |
|---------------------------------|
| "2022-02-24 04:00:00.123 -0800" |
+---------------------------------+

在 WHERE 子句中使用 IS_TIMESTAMP_TZ 函数来显示数据中的 TIMESTAMP_TZ 值:

SELECT * FROM vardttm WHERE IS_TIMESTAMP_TZ(v);
Copy
+---------------------------------+
| V                               |
|---------------------------------|
| "2020-02-24 15:00:00.123 +0100" |
+---------------------------------+
语言: 中文