강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
데이터 타입 변환 함수
조회 : 8,067  


데이터 타입 변환 함수
1. TO_CHAR 함수
날짜 타입(DATE, TIME, TIMESTAMP)
TO_CHAR 함수는 날짜-시간 타입(DATE, TIME, TIMESTAMP)을 "날짜-시간" 포맷에 맞는 VARCHAR 타입으로 변환한다. 날짜-시간 포맷이 생략되었을 때에 DATE 타입이면 'MM/DD/YYYY' 포맷이, TIME 타입이면 'HH:MI:SS' 포맷이, TIMESTAMP 타입이면 'HH:MI:SS AM MM/DD/YYYY' 포맷이 적용된다.
1) 구문
TO_CHAR( date_time_argument [, format_argument[, date_lang_string_literal ]] )

date_time_argument :
date
time
timestamp
NULL

format_argument :
character strings (날짜 포맷 표 참조)
NULL

date_lang_string_literal : (date_lang_string_literal 표 참조)
'en_US'
'ko_KR'
number_operand_m : VARCHAR 타입으로 변경할 날짜-시간 타입 값을 지정한다. 값이 NULL인 경우에는 NULL이 반환된다.
date_time_argument : 반환할 값의 양식을 지정한다. 값이 NULL인 경우에는 NULL이 반환된다.
date_lang_string_literal : 반환값에 적용할 언어를 지정한다(date_lang_string_literal 표 참조). 디폴트 값은 'en_US'이다. CUBRID_DATE_LANG 환경 변수를 지정하여 수정할 수 있다.
날짜 포맷
포맷 구성 요소 의미
  CC   세기
  YYYY, YY   4자리 연도, 2자리 연도
  Q   분기(1, 2, 3, 4; 1월~3월 = 1)
  MM   월(01-12; 1월 = 01)
  MONTH   월 이름
  MON   축약된 월 이름
  DD   날(1-31)
  DAY   요일 이름
  DY   축약된 요일 이름
  D 또는 d   요일(1-7)
  AM 또는 PM   오전/오후
  A.M. 또는 P.M.   마침표가 포함된 오전/오후
  HH 또는 HH12   시(0-11)
  HH24   시(0-23)
  MI   분(0-59)
  SS   초(0-59)
  - / , . ; : "텍스트"   구두점과 인용구는 그대로 결과에 표현됨
date_lang_string_literal 예
포맷 구성 요소 Date_lang_string_literal
'en_US' 'ko_KR'
  MONTH   JANUARY   1월
  MON   JAN   1
  DAY   MONDAY   월요일
  DY   MON   월
  Month   January   1월
  Mon   Jan   1
  Day   Monday   월요일
  Dy   Mon   월
  month   january   1월
  mon   jan   1
  day   monday   월요일
  dy   mon   월
  AM   AM   오전
  Am   Am   오전
  am   am   오전
  A.M.   A.M.   오전
  A.m.   A.m.   오전
  a.m.   a.m.   오전
  PM   PM   오후
  Pm   Pm   오후
  pm   pm   오후
  P.M.   P.M.   오후
  P.m.   P.m.   오후
  p.m.   p.m.   오후
반환값 포맷의 자릿수는 다음과 같다.
포맷 구성 요소 자릿수
  MONTH(Month, month)   9 (ko_KR의 경우 4)
  MON(Mon, mon)   3 (ko_KR의 경우 2)
  DAY(Day, day)   9 (ko_KR의 경우 6)
  DY(Dy, dy)   3 (ko_KR의 경우 2)
  HH12, HH24   2
  "텍스트"   텍스트의 길이
  나머지 포맷   포맷의 길이와 같음
2) 예제
다음은 DATE 타입에서 날짜만 반환하는 예제이다.
SELECT TO_CHAR(DATE '12/25/1999', 'dd') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
to_char(DATE '12/25/1999', 'dd')
================================
25
1 rows selected.
다음은 TIME 타입에서 시만 반환하는 예제이다.
SELECT TO_CHAR(TIME '10:20:30 AM', 'HH24') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
to_char(TIME '10:20:30 AM', 'HH24')
===================================
10
1 rows selected.
다음은 TIMESTAMP 타입에서 월 이름, 축약된 월 이름, 연도를 반환하는 예제이다.
SELECT TO_CHAR(TIMESTAMP '10:20:30 AM 12/25/1999', 'MONTH MON yyyy') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
to_char(TIMESTAMP '10:20:30 AM 12/25/1999')
===========================================
DECEMBER DEC 1999
1 rows selected.
다음은 TIME 타입에서 시만 반환하는 예제이다.
SELECT TO_CHAR(TIME '10:20:30 AM', 'HH24') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
to_char(TIME '10:20:30 AM', 'HH24')
===================================
10
1 rows selected.
다음은 TIMESTAMP에서 요일을 숫자로 반환하는 예제이다.
SELECT TO_CHAR(TIMESTAMP '10:20:30 AM 12/25/1999', 'D') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
to_char(TIMESTAMP '10:20:30 AM 12/25/1999', 'D')
================================================
7
1 rows selected.
숫자 타입(NUMERIC)
TO_CHAR 함수는 NUMERIC타입을 숫자 포맷에 맞는 VARCHAR타입으로 변환한다.
1) 구문
TO_CHAR(numeric_argument[, format_argument ])

numeric_argument :
numeric(decimal)
integer
smallint
float(real)
double
NULL


format_argument :
character strings (숫자 포맷 표 참조)
NULL
numeric_argument : VARCHAR 타입으로 변환할 숫자값을 지정한다. 값이 NULL이면 결과로 NULL이 반환된다.
format_argument : 반환할 값의 양식을 지정한다. 생략되면, 숫자 타입값에 따라서 기본 포맷을 따른다. 값이 NULL이면 결과로 NULL이 반환된다.
숫자 포맷
포맷 구성 요소 예 제 설 명
  9   9999   "9"의 개수가 반환될 유효숫자 자릿수를 나타낸다. 숫자 앞쪽의 0에 대해서는 공백이 반환된다.
  0   0999   숫자 앞쪽의 0에 대해서 공백이 아니라 0을 반환한다.
  S   S999   지정된 위치에 양수에 대해서는 "+", 음수에 대해서는 "-"를 반환한다.
  C   C999   지정된 위치에 ISO 통화 기호를 반환한다.
  ,   9,999   지정된 위치에 쉼표(",")를 반환한다.
  .   9.999   지정된 위치에 숫자의 정수 부분과 소수 부분을 구분하는 마침표(".")를 반환한다.
  EEEE   9.99EEEE   과학적 기수법(scientific notation)을 반환한다.
2) 예제
다음은 숫자를 사인 부호와 4자리의 VARCHAR 타입으로 반환하는 예제이다.
SELECT TO_CHAR(1234,'S9999') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
to_char(1234,'S9999')
=====================
+1234
1 rows selected.
다음은 과학적 기수법으로 표기된 숫자를 VARCHAR 타입으로 반환하는 예제이다.
SELECT TO_CHAR(1.234E-4) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
to_char(1.234E-4)
=================
0.0001234
1 rows selected.
2. TO_NUMBER 함수
TO_NUMBER 함수는 문자열을 숫자 포맷에 맞는 NUMBERIC 타입으로 변환한다.
1) 구문
TO_NUMBER(string_argument[,format_argument ])

string_argument :
character strings
NULL

format_argument :
character strings
NULL
string_argument : NUMBERIC 타입으로 변환할 문자열을 지정한다. 값이 NULL이면 결과로 NULL이 반환된다.
format_argument : 반환할 값의 양식을 지정한다. 생략되면, NUMBERIC 포맷으로 문자열을 반환한다. 값이 NULL이면 결과로 NULL이 반환된다.
2) 예제
다음은 문자열 '-1234'를 NUMERIC 타입으로 변환하여 반환하는 예제이다.
SELECT TO_NUMBER('-1234') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
to_number('-1234')
==================
-1234
1 rows selected.
다음은 문자열 '0.123'을 0.0000 과 같은 양식의 NUMERIC 타입으로 변환하여 반환하는 예제이다.
SELECT TO_NUMBER('0.123','0.0000') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
to_number('0.123','0.0000')
===========================
0.1230
1 rows selected.
3. TO_DATE 함수
TO_DATE 함수는 문자열을 날짜-시간 포맷에 맞는 DATE 타입으로 변환한다.
1) 구문
TO_DATE(string_argument[,format_argument[,date_lang_string_literal]])

string_argument :
character strings
NULL

format_argument :
character strings (날짜 포맷 표 참조)
NULL

date_lang_string_literal : (date_lang_string_literal 표 참조)
'en_US'
'ko_KR'
string_argument : DATE 타입으로 변환할 문자열을 지정한다. 값이 NULL이면 결과로 NULL이 반환된다.
format_argument : 반환할 값의 양식을 지정한다. 생략되면, 기본 포맷인 'MM/DD/YYYY'를 적용하여 문자열을 변환한다. 값이 NULL이면 결과로 NULL이 반환된다.
date_lang_string_literal : 반환값에 적용할 언어를 지정한다. 값이 CUBRID_DATE_LANG 환경 변수를 지정하여 수정할 수 있다.
2) 예제
다음은 기본 포맷인 'MM/DD/YYYY'를 적용하여 문자열을 DATE 타입으로 변환하는 예제이다.
SELECT TO_DATE('9/6/1976') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
to_date('9/6/1976')
===================
1976-09-06
1 rows selected.
다음은 'YYYY MM DD' 포맷을 적용하여 문자열을 DATE 타입으로 변환하는 예제이다.
SELECT TO_DATE('1999 3 4', 'YYYY MM DD') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
to_date('1999 3 4', 'YYYY MM DD')
=================================
1999-03-04
1 rows selected.
4. TO_TIME 함수
TO_TIME 함수는 문자열을 날짜-시간 포맷에 맞는 TIME 타입으로 변환한다.
1) 구문
TO_TIME(string_argument[,format_argument[,date_lang_string_literal]])

string_argument :
character strings
NULL

format_argument :
character strings (날짜 포맷 표 참조)
NULL

date_lang_string_literal : (date_lang_string_literal 표 참조)
'en_US'
'ko_KR'
string_argument : TIME 타입으로 변환할 문자열을 지정한다. 값이 NULL이면 결과로 NULL이 반환된다.
format_argument : 반환할 값의 양식을 지정한다. 생략되면, 기본 포맷인 'HH:MI[:SS] [am|pm]'를 적용하여 문자열을 변환한다. 값이 NULL이면 결과로 NULL이 반환된다.
date_lang_string_literal : 반환값에 적용할 언어를 지정한다. 값이 CUBRID_DATE_LANG 환경 변수를 지정하여 수정할 수 있다.
2) 예제
다음은 문자열 10:30:20 AM을 기본 포맷을 적용하여 TIME 타입으로 변환하여 반환하는 예제이다.
SELECT TO_TIME('10:30:20 AM') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
to_time('10:30:20 AM')
======================
10:30:20
1 rows selected.
다음은 선언한 포맷을 적용하여 문자열을 TIME 타입으로 변환하는 예제이다.
SELECT TO_TIME('HOUR: 10 MINUTE: 30 SECOND: 20', '"HOUR:" HH24 "MINUTE:" MI "SECOND:" SS')
FROM db_root;
=== <Result of SELECT Command in Line 1> ===
TO_TIME('HOUR: 10 MINUTE: 30 SECOND: 20', '"HOUR:" HH24 "MINUTE:" MI "SECOND:" SS')
===================================================================================
10:30:20
1 rows selected.
5. TO_TIMESTAMP 함수
TO_TIMESTAMP 함수는 문자열을 날짜-시간 포맷에 맞는 TIMESTAMP 타입으로 변환한다.
1) 구문
TO_TIMESTAMP(string_argument[,format_argument[,date_lang_string_literal]])

string_argument :
character strings
NULL

format_argument :
character strings (날짜 포맷 표 참조)
NULL

date_lang_string_literal : (date_lang_string_literal 표 참조)
'en_US'
'ko_KR'
string_argument : TIMESTAMP 타입으로 변환할 문자열을 지정한다. 값이 NULL이면 결과로 NULL이 반환된다.
format_argument : 반환할 값의 양식을 지정한다. 생략되면, 기본 포맷인 'HH:MI[:SS] [am|pm] MM/DD/YYYY'를 적용하여 문자열을 변환한다. 값이 NULL이면 결과로 NULL이 반환된다.
date_lang_string_literal : 반환값에 적용할 언어를 지정한다. 값이 CUBRID_DATE_LANG 환경 변수를 지정하여 수정할 수 있다.
2) 예제
다음은 문자열 기본 포맷을 적용하여 TIMESTAMP 타입으로 변환하여 반환하는 예제이다.
SELECT TO_TIMESTAMP('10:30:20 AM 12/25/1999') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
to_timestamp('10:30:20 AM 12/25/1999')
======================================
1999-12-25 10:30:20
1 rows selected.
다음은 선언한 포맷을 적용하여 문자열을 TIMESTAMP 타입으로 변환하는 예제이다.
SELECT TO_TIMESTAMP('YEAR: 1999 MONTH: 12 DAY: 25 HOUR: 10 MINUTE: 30 SECOND: 20','"YEAR:" YYYY "MONTH:" MM "DAY:" DD "HOUR:" HH24 "MINUTE:" MI "SECOND:" SS') FROM db_root;
=== <Result of SELECT Command in Line 1> ===
to_timestamp('YEAR: 1999 MONTH: 12 DAY: 25 HOUR: 10 MINUTE: 30 SECOND: 20','"YEAR:" YYYY "MONTH:" MM "DAY:" DD "HOUR:" HH24 "MINUTE:" MI "SECOND:" SS')
=======================================================================================================================================================
1999-12-25 10:30:20
1 rows selected.

[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1628


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
큐브리드