Continuous Challenge

[불친절한 SQL 프로그래밍][6장] 단일 행 함수 - 6.4 변환 함수 본문

Study/불친절한 SQL 프로그래밍

[불친절한 SQL 프로그래밍][6장] 단일 행 함수 - 6.4 변환 함수

응굥 2019. 11. 26. 16:00
728x90
728x90

변환 함수(conversion function)는 값의 데이터 타입을 다른 데이터 타입으로 변환하는 함수이다.

 

TO_CHAR(number) 함수

TO_CHAR(number) 함수는 expr을 fmt 형식의 문자 값으로 변환한다.

TO_CHAR(n, fmt [, 'nlsparam']])
포맷 요소 설명
0 앞쪽이나 뒷쪽에 0을 출력
9 한자리 숫자
, 구분자
. 소수점
S 부호(양수면 +, 음수면 -)

c1, c4 열은 값이 fmt보다 커 결과가 #으로 표시된다.
S포맷 요소를 사용한 쿼리. 명시적으로 부호를 표시할 때 사용할 수 있다.
구분자, 소수점 포맷 요소를 사용한 쿼리. c1열에서 결과가 반올림된 것을 확인할 수 있다.

 

포맷 요소 설명 파라미터
G 구분자(Group separator) NLS_NUMERIC_CHARACTERS
D 소수점(Decimal character) NLS_NUMERIC_CHARACTERS

G, D 포맷 요소를 사용한 쿼리

포맷 요소 설명 파라미터
$ 달러  
L 로컬 통화 기호 NLS_CURRENCY
U 이중 통화 기호 NLS_DUAL_CURRENCY
C 국제 통화 기호 NLS_ISO_CURRENCY

통화와 관련된 포맷 요소를 사용한 쿼리

 

TO_CHAR(datetime) 함수

TO_CHAR(datetime) 함수는 datetime 값과 interval 값을 fmt 형식의 문자 값으로 변환한다.

TO_CHAR({datetime|interval} [ , fmt [ , 'nlsparam']])

 

TO_NUMBER 함수

TO_NUMBER 함수는 fmt 형식의 expr을 숫자 값으로 변환한다.

TO_NUMBER(expr, [, fmt [, 'nlsparam']])

위 쿼리는 문자 값에 구분자(,)가 포함되어 있어 에러가 발생한다.
위처럼 포맷을 지정하면 에러가 발생하지 않는다.

 

TO_DATE 함수

TO_DATE 함수는 fmt 형식의 char를 DATE 값으로 변환한다. TO_DATE 함수도 TO_CHAR 함수처럼 반드시 포맷을 지정해야 한다. 포맷을 지정하지 않으면 NLS_DATE_FORMAT 파라미터에 따라 에러가 발생할 수 있다.

TO_DATE(char, [, fmt [, 'nlsparam']])

c1열처럼 년만 지정한 경우 현재 월의 월초일이 반환된다. c2열처럼 연월만 지정한 경우 지정한 월의 월초일이 반환된다.

 

TO_YMINTERVAL 함수

TO_YMINTERVAL 함수는 문자 값을 YEAR TO MONTH 인터벌 값으로 변환한다.

TO_YMINTERVAL('{sql_format | ym_iso_format}')
포맷 형식
sql_format [+ | -] years-months
ym_iso_format [-]P[years Y][months M]

 

TO_DSINTERVAL 함수

TO_DSINTERVAL 함수는 문자 값을 DAY TO SECOND 인터벌 값으로 변환한다.

TO_DSINTERVAL('{sql_format|ds_iso_format}')
포맷 형식
sql_format [+ | -]days hours:minutes:seconds[.frac_secs]
ds_iso_format [-]P[days D][T[hours H][minutes M][seconds[. frac_secs]S]]

 

NUMTOYMINTERVAL 함수

NUMTOYMINTERVAL 함수는 n을 YEAR TO MONTH 인터벌 값으로 변환한다.

NUMTOYMINTERVAL(n, 'interval_unit')

 

NUMTODSINTERVAL 함수

NUMTODSINTERVAL 함수는 n을 DAY TO SECOND 인터벌 값으로 변환한다.

NUMTODSINTERVAL(n, 'interval_unit')

 

CAST 함수

CAST 함수는 expr을 type_name에 지정한 데이터 타입으로 변환한다. type_name은 NUMBER, DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE을 지정할 수 있다. 

CAST(expr AS type_name [, fmt [, 'nlsparam']])

 

728x90
728x90
Comments