TIMESTAMP_FROM_PARTS
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-23등)의 값을 처리하는 데 사용돼요. 그러나 이 범위 밖의 값도 처리할 수 있어요. 이렇게 하면 한 해의 N번째 날이나 하루의 N번째 초를 선택할 수 있어 일부 계산을 단순화하는 데 유용할 수 있어요. - TIMESTAMP_FROM_PARTS는 TIMESTAMP_TYPE_MAPPING 세션 파라미터가 지정한 변형(기본값 TIMESTAMP_NTZ)과 동등해요.
예시
출력 형식과 시간대를 제어하는 세션 변수를 설정해요:
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 |
+------------------------------------------------+
더 알아보기 (Learn more)
- TO_TIMESTAMP — 타임스탬프 변환
- DATE_FROM_PARTS — 날짜 구성
- TIME_FROM_PARTS — 시간 구성