카테고리:

날짜 및 시간 함수

TIMESTAMP_FROM_PARTS

개별 숫자 구성 요소에서 타임스탬프를 만듭니다. 타임존이 적용되지 않는 경우, 함수를 사용하여 날짜 식 및 시간 식에서 타임스탬프를 만들 수 있습니다.

별칭:

TIMESTAMPFROMPARTS

변형(및 별칭):

TIMESTAMP_LTZ_FROM_PARTS , TIMESTAMPLTZFROMPARTS

TIMESTAMP_NTZ_FROM_PARTS , TIMESTAMPNTZFROMPARTS

TIMESTAMP_TZ_FROM_PARTS , TIMESTAMPTZFROMPARTS

구문

TIMESTAMP_FROM_PARTS( <year>, <month>, <day>, <hour>, <minute>, <second> [, <nanosecond> ] [, <time_zone> ] )

TIMESTAMP_FROM_PARTS( <date_expr>, <time_expr> )
TIMESTAMP_LTZ_FROM_PARTS( <year>, <month>, <day>, <hour>, <minute>, <second> [, <nanosecond>] )
TIMESTAMP_NTZ_FROM_PARTS( <year>, <month>, <day>, <hour>, <minute>, <second> [, <nanosecond>] )

TIMESTAMP_NTZ_FROM_PARTS( <date_expr>, <time_expr> )
TIMESTAMP_TZ_FROM_PARTS( <year>, <month>, <day>, <hour>, <minute>, <second> [, <nanosecond>] [, <time_zone>] )

참고

TIMESTAMP_FROM_PARTS의 날짜 및 시간 식 버전은 TIMESTAMP_TYPE_MAPPING 세션 매개 변수가 TIMESTAMP_NTZ로 설정된 경우에만 유효합니다.

인자

필수:

year

타임스탬프를 빌드하기 위해 연도로 사용할 정수 식입니다.

month

타임스탬프를 빌드하기 위해 월로 사용할 정수 식으로, 1월은 1 로, 12월은 12 로 표시됩니다.

day

타임스탬프를 빌드하기 위해 일로 사용할 정수 식으로, 일반적으로 1-31 범위입니다.

hour

타임스탬프를 빌드하기 위해 시간으로 사용할 정수 식으로, 일반적으로 0-23 범위입니다.

minute

타임스탬프를 빌드하기 위해 분으로 사용할 정수 식으로, 일반적으로 0-59 범위입니다.

second

타임스탬프를 빌드하기 위해 초로 사용할 정수 식으로, 일반적으로 0-59 범위입니다.

date_expr , time_expr

타임스탬프를 빌드하는 데 사용할 날짜 및 시간 식을 지정하며, 여기서 date_expr 은 타임스탬프에 대한 연도, 월, 일을 제공하고 time_expr 은 하루 내의 시, 분, 초, 나노초를 제공합니다. 다음에 대해서만 유효합니다.

  • TIMESTAMP_FROM_PARTS(TIMESTAMP_TYPE_MAPPING 세션 매개 변수가 TIMESTAMP_NTZ로 설정된 경우)

  • TIMESTAMP_NTZ_FROM_PARTS

선택 사항:

nanoseconds

타임스탬프를 빌드하기 위해 나노초로 사용할 정수 식으로, 일반적으로 0-999999999 범위입니다.

time_zone

타임스탬프를 빌드하기 위한 타임존(예: America/Los_Angeles)로 사용할 문자열 식입니다. 다음에 대해서만 유효합니다.

  • TIMESTAMP_FROM_PARTS(TIMESTAMP_TYPE_MAPPING 세션 매개 변수가 TIMESTAMP_TZ로 설정된 경우)

  • TIMESTAMP_TZ_FROM_PARTS

사용법 노트

  • 일반적으로 TIMESTAMP_FROM_PARTS 변형은 《정상》 값 범위(예: 1-12 월, 1-31 일, 0-0-23 시간 등)의 값을 처리하는 데 사용됩니다. 그러나 이러한 범위 밖의 값도 처리할 수 있습니다. 이를 통해 1년의 N번째 날 또는 하루의 N번째 초를 선택할 수 있으며, 이는 일부 계산을 단순화하는 데 유용할 수 있습니다.

  • TIMESTAMP_FROM_PARTS는 TIMESTAMP_TYPE_MAPPING 세션 매개 변수에 의해 지정된 변형과 동일합니다(기본값은 TIMESTAMP_LTZ).

출력 형식과 타임존을 제어하는 세션 변수를 설정합니다.

ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT='YYYY-MM-DD HH24:MI:SS.FF9 TZH:TZM';
ALTER SESSION SET TIMESTAMP_NTZ_OUTPUT_FORMAT='YYYY-MM-DD HH24:MI:SS.FF9 TZH:TZM';
ALTER SESSION SET TIMEZONE='America/New_York';

TIMESTAMP_LTZ_FROM_PARTS 를 사용합니다.

SELECT TIMESTAMP_LTZ_FROM_PARTS(2013, 4, 5, 12, 00, 00);
+--------------------------------------------------+
| TIMESTAMP_LTZ_FROM_PARTS(2013, 4, 5, 12, 00, 00) |
|--------------------------------------------------|
| 2013-04-05 12:00:00.000000000 -0400              |
+--------------------------------------------------+

TIMESTAMP_NTZ_FROM_PARTS 를 사용합니다.

select timestamp_ntz_from_parts(2013, 4, 5, 12, 00, 00, 987654321);
+-------------------------------------------------------------+
| TIMESTAMP_NTZ_FROM_PARTS(2013, 4, 5, 12, 00, 00, 987654321) |
|-------------------------------------------------------------|
| 2013-04-05 12:00:00.987654321                               |
+-------------------------------------------------------------+

연도, 월, 일, 시 등이 아닌 날짜 및 시간과 함께 TIMESTAMP_NTZ_FROM_PARTS 를 사용합니다.

select timestamp_ntz_from_parts(to_date('2013-04-05'), to_time('12:00:00'));
+----------------------------------------------------------------------+
| TIMESTAMP_NTZ_FROM_PARTS(TO_DATE('2013-04-05'), TO_TIME('12:00:00')) |
|----------------------------------------------------------------------|
| 2013-04-05 12:00:00.000000000                                        |
+----------------------------------------------------------------------+

세션 기본 타임존(〈America/New_York〉/-0400)와 함께 TIMESTAMP_TZ_FROM_PARTS 를 사용합니다.

select timestamp_tz_from_parts(2013, 4, 5, 12, 00, 00);
+-------------------------------------------------+
| TIMESTAMP_TZ_FROM_PARTS(2013, 4, 5, 12, 00, 00) |
|-------------------------------------------------|
| 2013-04-05 12:00:00.000000000 -0400             |
+-------------------------------------------------+

지정된 타임존(〈America/Los_Angeles〉/-0700)와 함께 TIMESTAMP_TZ_FROM_PARTS 를 사용합니다. 나노초 인자로서 0을 사용하는 것에도 주목하십시오.

select timestamp_tz_from_parts(2013, 4, 5, 12, 00, 00, 0, 'America/Los_Angeles');
+---------------------------------------------------------------------------+
| TIMESTAMP_TZ_FROM_PARTS(2013, 4, 5, 12, 00, 00, 0, 'AMERICA/LOS_ANGELES') |
|---------------------------------------------------------------------------|
| 2013-04-05 12:00:00.000000000 -0700                                       |
+---------------------------------------------------------------------------+

정상 범위를 벗어난 값을 처리합니다(-3600초를 지정하여 1시간 빼기).

select timestamp_from_parts(2013, 4, 5, 12, 0, -3600);
+------------------------------------------------+
| TIMESTAMP_FROM_PARTS(2013, 4, 5, 12, 0, -3600) |
|------------------------------------------------|
| 2013-04-05 11:00:00.000000000                  |
+------------------------------------------------+
맨 위로 이동