|
|
데이터 타입 변환 함수 |
|
|
|
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 NULLformat_argument : character strings ( 날짜 포맷 표 참조) NULLdate_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 NULLformat_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 NULLformat_argument : character strings ( 날짜 포맷 표 참조) NULLdate_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 NULLformat_argument : character strings ( 날짜 포맷 표 참조) NULLdate_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 NULLformat_argument : character strings ( 날짜 포맷 표 참조) NULLdate_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. |
|
|