본문 바로가기

[오라클 레퍼런스 함수] TO_DATE - 문자열을 DATE 형식으로 변환

by ㅇㅍㅍ 2023. 8. 30.
[오라클 레퍼런스 함수] TO_DATE - 문자열을 DATE 형식으로 변환
728x90

 

TO_DATE

 

구문

TO_DATE(char [ DEFAULT return_value ON CONVERSION ERROR ]
  [, fmt [, 'nlsparam' ] ])

 

목적

TO_DATEcharDATE 데이터 유형의 값으로 변환합니다.

char로는 CHAR, VARCHAR2, NCHAR, 또는 NVARCHAR2 데이터 유형의 문자열로 평가되는 모든 식을 지정할 수 있습니다.

 

노트: 이 함수는 데이터를 다른 datetime 데이터 유형 중 하나로 변환하지 않습니다. 다른 datetime 변환에 대한 정보는 TO_TIMESTAMP, TO_TIMESTAMP_TZ, TO_DSINTERVAL 및 TO_YMINTERVAL을 참조하십시오.

 

선택적인 DEFAULT return_value ON CONVERSION ERROR 절을 사용하여 charDATE로 변환하는 동안 오류가 발생할 경우 이 함수가 반환하는 값을 지정할 수 있습니다. 이 절은 char를 평가하는 동안 오류가 발생하는 경우에는 영향을 미치지 않습니다. return_valueCHAR, VARCHAR2, NCHAR, 또는 NVARCHAR2 데이터 유형의 문자열로 평가되는 식 또는 바인드 변수 일 수 있으며, 함수는 return_valueDATE로 변환하는 데 charDATE로 변환하는 데 사용하는 동일한 방법을 사용합니다. return_valueDATE로 변환될 수 없는 경우 함수는 오류를 반환합니다.

fmtchar의 형식을 지정하는 datetime 모델 형식입니다. fmt를 생략하면 char는 기본 날짜 형식이어야 합니다. 기본 날짜 형식은 NLS_TERRITORY 초기화 매개변수에 의해 암시적으로 결정되거나 NLS_DATE_FORMAT 매개변수로 명시적으로 설정할 수 있습니다. fmt가 J(율리우스)인 경우 char는 정수여야 합니다.

 

주의: TO_DATE와 함께 항상 형식 마스크(fmt)를 지정하는 것이 좋은 실천입니다. 다음 섹션의 예제에서 보여진 것처럼 형식 마스크를 지정하지 않고 사용할 때는 함수가 charNLS_TERRITORY 또는 NLS_DATE_FORMAT 매개변수로 결정된 형식과 동일한 경우에만 유효합니다. 또한, 명시적 형식 마스크를 지정하여 의존성을 피하기 위해 함수가 데이터베이스 간에 안정적이지 않을 수 있습니다.

 

'nlsparam' 인수는 날짜로 변환 중인 텍스트 문자열의 언어를 지정합니다. 이 인수는 다음과 같은 형식을 가질 수 있습니다:

'NLS_DATE_LANGUAGE = language'

 

char 인수에 대한 DATE 값과 함께 TO_DATE 함수를 사용하지 마십시오. 반환된 DATE 값의 처음 두 자리는 fmt 또는 기본 날짜 형식에 따라 원래 char과 다를 수 있습니다.

이 함수는 CLOB 데이터를 직접 지원하지 않습니다. 그러나 CLOB는 암시적 데이터 변환을 통해 인수로 전달할 수 있습니다.

 

참고:

더 많은 정보를 위해 "Datetime Format Models" 및 "Data Type Comparison Rules"을 참조하십시오.

 

예제

다음 예제는 문자열을 날짜로 변환합니다:

SELECT TO_DATE(
    'January 15, 1989, 11:00 A.M.',
    'Month dd, YYYY, HH:MI A.M.',
     'NLS_DATE_LANGUAGE = American')
     FROM DUAL;

TO_DATE('
---------
15-JAN-89

 

반환된 값은 NLS_TERRITORY 매개변수가 'AMERICA'로 설정된 경우 기본 날짜 형식을 반영합니다. 다른 NLS_TERRITORY 값은 다른 기본 날짜 형식을 가져옵니다:

ALTER SESSION SET NLS_TERRITORY = 'KOREAN';

SELECT TO_DATE(
    'January 15, 1989, 11:00 A.M.',
    'Month dd, YYYY, HH:MI A.M.',
     'NLS_DATE_LANGUAGE = American')
     FROM DUAL;

TO_DATE(
--------
89/01/15

 

다음 예제는 월의 철자를 잘못 입력하여 지정된 표현식을 DATE 값으로 변환할 수 없으므로 기본값을 반환합니다:

SELECT TO_DATE('Febuary 15, 2016, 11:00 A.M.'
       DEFAULT 'January 01, 2016 12:00 A.M.' ON CONVERSION ERROR,
       'Month dd, YYYY, HH:MI A.M.') "Value"
  FROM DUAL;

Value
---------
01-JAN-16

 


출처: 오라클 레퍼런스

원문 링크: Oracle TO_DATE 함수 문서

 

반응형

댓글