728x90
TO_UTC_TIMESTAMP_TZ
구문
TO_UTC_TIMESTAMP_TZ ( varchar )
목적
SQL 함수 TO_UTC_TIMESTAMP_TZ는 varchar 입력으로 ISO 8601 날짜 형식 문자열을 받아들이고 SQL 데이터 유형 TIMESTAMP WITH TIMEZONE의 인스턴스를 반환합니다. 이 함수는 입력을 협정 세계 표준시 (이전에는 그리니치 평균시)인 UTC(협정 세계 표준시) 시간으로 정규화합니다. SQL 함수 TO_TIMESTAMP_TZ와 달리, 이 새로운 함수는 입력 문자열이 ISO 8601 날짜 형식을 사용한다고 가정하며, 기본적으로 시간대를 UTC 0으로 설정합니다.
이 함수의 전형적인 사용 사례는 출력을 SQL 함수 SYS_EXTRACT_UTC에 제공하여 UTC 시간을 얻은 다음, SQL/JSON 조건 JSON_EXISTS에 SQL 바인드 변수로 전달하여 타임 스탬프 범위 비교를 수행하는 것입니다.
날짜 및 시간에 대한 허용되는 구문은 다음과 같습니다:
- 날짜 (날짜만): YYYY-MM-DD
- 시간이 포함된 날짜: YYYY-MM-DDThh:mm:ss[.s[s[s[s[s[s]]]]][Z|(+|-)hh:mm]
여기서:
- YYYY는 네 자리 십진수로 연도(year)를 지정합니다.
- MM은 두 자리 십진수로 월(month)을 지정합니다 (00에서 12까지).
- DD는 두 자리 십진수로 일(day)을 지정합니다 (00에서 31까지).
- hh는 두 자리 십진수로 시간(hour)을 지정합니다 (00에서 23까지).
- mm은 두 자리 십진수로 분(minutes)을 지정합니다 (00에서 59까지).
- ss[.s[s[s[s[s]]]]]는 초를 나타냅니다. 이 초는 두 자리 십진수로 00에서 59까지 지정할 수 있으며, 선택적으로 소수점과 1에서 6자리의 십진수를 뒤따릅니다 (초의 소수 부분을 나타냄).
- Z는 UTC 시간을 지정합니다 (시간대 0). (그러나 +00:00으로 지정할 수도 있지만 –00:00으로는 지정할 수 없음).
- (+|-)hh:mm은 UTC와의 차이로 시간대를 지정합니다. (한쪽은 + 또는 - 중 하나가 필요합니다).
시간 값의 경우, 시간대 부분은 선택 사항입니다. 시간대가 없으면 UTC 시간으로 가정됩니다.
다른 ISO 8601 날짜-시간 구문은 지원되지 않습니다. 특히:
- 음수 연도 (BCE 이전의 연도)를 나타내는 음수 기호 (예: –2018–10–26T21:32:52)는 지원되지 않습니다.
- 하이픈과 콜론 구분 기호가 필요합니다. "기본" 형식이라고 하는 YYYYMMDDThhmmss 형식은 지원되지 않습니다.
- 서수(Ordinal) 날짜 (연도에 일 수 추가, 달력 주에 일 수 추가)는 지원되지 않습니다.
- 연도에 네 자리 이상의 숫자를 사용하는 것은 지원되지 않습니다.
지원되는 날짜와 시간은 다음과 같습니다:
- 2018–10–26T21:32:52
- 2018-10-26T21:32:52+02:00
- 2018-10-26T19:32:52Z
- 2018-10-26T19:32:52+00:00
- 2018-10-26T21:32:52.12679
지원되지 않는 날짜와 시간은 다음과 같습니다:
- 2018-10-26T21:32 (시간이 지정된 경우 모든 부분이 있어야 합니다).
- 2018-10-26T25:32:52+02:00 (시간 부분인 25는 범위를 벗어납니다).
- 18-10-26T21:32 (연도가 완전히 지정되지 않았습니다).
예제
SELECT TO_UTC_TIMESTAMP_TZ('1998-01-01') FROM DUAL;
TO_UTC_TIMESTAMP_TZ('1998-01-01')
---------------------------------------------------------------------------
01-JAN-98 12.00.00.000000000 AM +00:00
SELECT TO_UTC_TIMESTAMP_TZ('2000-01-02T12:34:56.789') FROM DUAL;
TO_UTC_TIMESTAMP_TZ('2000-01-02T12:34:56.789')
---------------------------------------------------------------------------
02-JAN-00 12.34.56.789000000 PM +00:00
SELECT TO_UTC_TIMESTAMP_TZ('2016-05-05T00:00:00.000Z') FROM DUAL;
TO_UTC_TIMESTAMP_TZ('2016-05-05T00:00:00.000Z')
---------------------------------------------------------------------------
05-MAY-16 12.00.00.000000000 AM +00:00
SELECT TO_UTC_TIMESTAMP_TZ('2016-05-05T02:04:35.4678Z') FROM DUAL;
TO_UTC_TIMESTAMP_TZ('2016-05-05T02:04:35.4678Z')
---------------------------------------------------------------------------
05-MAY-16 02.04.35.467800000 AM +00:00
참고:
출처: 오라클 레퍼런스
원문 링크: Oracle TO_UTC_TIMESTAMP_TZ 함수 문서
반응형
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] TRANSLATE - 문자열 대체 (0) | 2023.09.02 |
---|---|
[오라클 레퍼런스 함수] TO_YMINTERVAL - INTERVAL MONTH TO YEAR 유형으로 변환 (0) | 2023.09.01 |
[오라클 레퍼런스 함수] TO_TIMESTAMP_TZ - TIMESTAMP WITH TIME ZONE 유형으로 변환 (0) | 2023.09.01 |
[오라클 레퍼런스 함수] TO_TIMESTAMP - TIMESTAMP 유형으로 변환 (0) | 2023.09.01 |
[오라클 레퍼런스 함수] TO_SINGLE_BYTE - 다중바이트 문자를 단일바이트 문자로 변환 (0) | 2023.09.01 |
댓글