IS_TIMESTAMP_*

IS_TIMESTAMP_* (타임스탬프 값 확인)

VARIANT 인자가 각각의 타임스탬프 값을 포함하는지 확인해요:

  • IS_TIMESTAMP_LTZ (로컬 시간대가 있는 값)
  • IS_TIMESTAMP_NTZ (시간대가 없는 값)
  • IS_TIMESTAMP_TZ (시간대가 있는 값)

출처: Snowflake SQL Reference - IS_TIMESTAMP_*

본문

구문 (Syntax)

IS_TIMESTAMP_LTZ( <variant_expr> )

IS_TIMESTAMP_NTZ( <variant_expr> )

IS_TIMESTAMP_TZ( <variant_expr> )

인자 (Arguments)

variant_expr

VARIANT 타입의 값으로 평가되는 표현식이에요.

반환 값 (Returns)

BOOLEAN 값 또는 NULL을 반환해요.

VARIANT 값이 타임스탬프를 포함하면 TRUE, 그렇지 않으면 FALSE를 반환해요.

입력이 NULL이면 오류를 보고하지 않고 NULL을 반환해요.

예시 (Examples)

세션에 지정된 시간대를 사용하는 출력으로 VARIANT 열의 모든 타임스탬프를 보여줘요.

참고: 시간대 출력 형식은 파라미터로 설정돼요:

  • TIMESTAMP_LTZ_OUTPUT_FORMAT 파라미터가 TIMESTAMP_LTZ 값의 형식을 설정해요.
  • TIMESTAMP_NTZ_OUTPUT_FORMAT 파라미터가 TIMESTAMP_NTZ 값의 형식을 설정해요.
  • TIMESTAMP_TZ_OUTPUT_FORMAT 파라미터가 TIMESTAMP_TZ 값의 형식을 설정해요.

이 예시에서 로컬 시간대는 미국 태평양 표준시(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'));

쿼리에서 TYPEOF 함수를 사용해 VARIANT 열 v에 저장된 값들의 데이터 타입을 보여줘요:

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" |
+---------------------------------+

더 알아보기 (Learn more)