TO_CHAR - Amazon Redshift

TO_CHAR

TO_CHAR는 타임스탬프 또는 숫자 표현식을 문자열 데이터 형식으로 변환합니다.

구문

TO_CHAR (timestamp_expression | numeric_expression , 'format')

인수

timestamp_expression

TIMESTAMP 또는 TIMESTAMPTZ 형식 값이나, 혹은 묵시적으로 타임스탬프로 강제 변환할 수 있는 값으로 평가되는 표현식입니다.

numeric_expression

숫자 데이터 형식 값이나, 혹은 묵시적으로 숫자 형식으로 강제 변환할 수 있는 값으로 평가되는 표현식입니다. 자세한 내용은 숫자형 단원을 참조하십시오. TO_CHAR는 숫자 문자열의 왼쪽에 공백을 삽입합니다.

참고

TO_CHAR는 128비트 DECIMAL 값을 지원하지 않습니다.

format

새로운 값의 형식입니다. 유효한 형식은 날짜/시간 형식 문자열 숫자 형식 문자열 섹션을 참조하세요.

반환 타입

VARCHAR

예시

다음 예는 타임스탬프를 9자에 덧붙인 월 이름, 요일 이름, 날짜를 포함한 형식의 날짜 및 시간 값으로 변환합니다.

select to_char(timestamp '2009-12-31 23:15:59', 'MONTH-DY-DD-YYYY HH12:MIPM'); to_char ------------------------- DECEMBER -THU-31-2009 11:15PM

다음 예는 타임스탬프를 연중 일 번호 값으로 변환합니다.

select to_char(timestamp '2009-12-31 23:15:59', 'DDD'); to_char ------------------------- 365

다음 예는 타임스탬프를 ISO 요일 번호로 변환합니다.

select to_char(timestamp '2022-05-16 23:15:59', 'ID'); to_char ------------------------- 1

다음 예는 날짜에서 월 이름을 추출합니다.

select to_char(date '2009-12-31', 'MONTH'); to_char ------------------------- DECEMBER

다음은 EVENT 테이블의 STARTTIME 값을 각각 시간, 분 및 초로 구성된 문자열로 변환하는 예입니다.

select to_char(starttime, 'HH12:MI:SS') from event where eventid between 1 and 5 order by eventid; to_char ---------- 02:30:00 08:00:00 02:30:00 02:30:00 07:00:00

다음은 전체 타임스탬프 값을 다른 형식으로 변환하는 예입니다.

select starttime, to_char(starttime, 'MON-DD-YYYY HH12:MIPM') from event where eventid=1; starttime | to_char ---------------------+--------------------- 2008-01-25 14:30:00 | JAN-25-2008 02:30PM

다음은 타임스탬프 리터럴을 문자열로 변환하는 예입니다.

select to_char(timestamp '2009-12-31 23:15:59','HH24:MI:SS'); to_char ---------- 23:15:59

다음은 10진수를 문자열로 변환하는 예입니다.

select to_char(125.8, '999.99'); to_char --------- 125.80

다음은 10진수를 문자열로 변환하는 예입니다.

select to_char(125.8, '999D99'); to_char --------- 125.80

다음은 앞에 0이 붙는 문자열로 숫자를 변환하는 예입니다.

select to_char(125.8, '0999D99'); to_char --------- 0125.80

다음은 숫자를 끝에 음의 부호가 있는 문자열로 변환하는 예입니다.

select to_char(-125.8, '999D99S'); to_char --------- 125.80-

다음은 지정된 위치에 양수 또는 음수 부호가 있는 문자열로 숫자를 반환하는 예입니다.

select to_char(125.8, '999D99SG'); to_char --------- 125.80+

다음은 지정된 위치에 양수 부호가 있는 문자열로 숫자를 반환하는 예입니다.

select to_char(125.8, 'PL999D99'); to_char --------- + 125.80

다음은 숫자를 통화 기호가 있는 문자열로 변환하는 예입니다.

select to_char(-125.88, '$S999D99'); to_char --------- $-125.88

다음은 지정된 위치에 통화 기호가 있는 문자열로 숫자를 변환하는 예입니다.

select to_char(-125.88, 'S999D99L'); to_char --------- -125.88$

다음은 천 단위(쉼표) 구분 기호를 사용하여 문자열로 숫자를 변환하는 예입니다.

select to_char(1125.8, '9,999.99'); to_char --------- 1,125.80

다음은 음수에 꺾쇠 괄호를 사용하여 숫자를 문자열로 변환하는 예입니다.

select to_char(-125.88, '$999D99PR'); to_char --------- $<125.88>

다음은 숫자를 로마 숫자 문자열로 변환하는 예입니다.

select to_char(125, 'RN'); to_char --------- CXXV

다음 예에서는 날짜를 세기 코드로 변환합니다.

select to_char(date '2020-12-31', 'CC'); to_char --------- 21

다음 예에서는 요일을 표시합니다.

SELECT to_char(current_timestamp, 'FMDay, FMDD HH12:MI:SS'); to_char ----------------------- Wednesday, 31 09:34:26

다음 예에서는 숫자의 서수 접미사를 표시합니다.

SELECT to_char(482, '999th'); to_char ----------------------- 482nd

다음은 SALES 테이블의 지불 가격에서 수수료를 빼는 예입니다. 그런 다음 차액을 반올림하여 to_char 열과 같이 로마 숫자로 변환합니다.

select salesid, pricepaid, commission, (pricepaid - commission) as difference, to_char(pricepaid - commission, 'rn') from sales group by sales.pricepaid, sales.commission, salesid order by salesid limit 10; salesid | pricepaid | commission | difference | to_char ---------+-----------+------------+------------+----------------- 1 | 728.00 | 109.20 | 618.80 | dcxix 2 | 76.00 | 11.40 | 64.60 | lxv 3 | 350.00 | 52.50 | 297.50 | ccxcviii 4 | 175.00 | 26.25 | 148.75 | cxlix 5 | 154.00 | 23.10 | 130.90 | cxxxi 6 | 394.00 | 59.10 | 334.90 | cccxxxv 7 | 788.00 | 118.20 | 669.80 | dclxx 8 | 197.00 | 29.55 | 167.45 | clxvii 9 | 591.00 | 88.65 | 502.35 | dii 10 | 65.00 | 9.75 | 55.25 | lv

다음은 to_char 열과 같이 통화 기호를 차액 값에 추가하는 예입니다.

select salesid, pricepaid, commission, (pricepaid - commission) as difference, to_char(pricepaid - commission, 'l99999D99') from sales group by sales.pricepaid, sales.commission, salesid order by salesid limit 10; salesid | pricepaid | commission | difference | to_char --------+-----------+------------+------------+------------ 1 | 728.00 | 109.20 | 618.80 | $ 618.80 2 | 76.00 | 11.40 | 64.60 | $ 64.60 3 | 350.00 | 52.50 | 297.50 | $ 297.50 4 | 175.00 | 26.25 | 148.75 | $ 148.75 5 | 154.00 | 23.10 | 130.90 | $ 130.90 6 | 394.00 | 59.10 | 334.90 | $ 334.90 7 | 788.00 | 118.20 | 669.80 | $ 669.80 8 | 197.00 | 29.55 | 167.45 | $ 167.45 9 | 591.00 | 88.65 | 502.35 | $ 502.35 10 | 65.00 | 9.75 | 55.25 | $ 55.25

다음은 각 판매가 이루어진 세기를 나열하는 예입니다.

select salesid, saletime, to_char(saletime, 'cc') from sales order by salesid limit 10; salesid | saletime | to_char ---------+---------------------+--------- 1 | 2008-02-18 02:36:48 | 21 2 | 2008-06-06 05:00:16 | 21 3 | 2008-06-06 08:26:17 | 21 4 | 2008-06-09 08:38:52 | 21 5 | 2008-08-31 09:17:02 | 21 6 | 2008-07-16 11:59:24 | 21 7 | 2008-06-26 12:56:06 | 21 8 | 2008-07-10 02:12:36 | 21 9 | 2008-07-22 02:23:17 | 21 10 | 2008-08-06 02:51:55 | 21

다음은 EVENT 테이블의 STARTTIME 값을 각각 시간, 분, 초 및 시간대로 구성된 문자열로 변환하는 예입니다.

select to_char(starttime, 'HH12:MI:SS TZ') from event where eventid between 1 and 5 order by eventid; to_char ---------- 02:30:00 UTC 08:00:00 UTC 02:30:00 UTC 02:30:00 UTC 07:00:00 UTC

다음은 초, 밀리초, 마이크로초에 따라 형식을 지정하는 예입니다.

select sysdate, to_char(sysdate, 'HH24:MI:SS') as seconds, to_char(sysdate, 'HH24:MI:SS.MS') as milliseconds, to_char(sysdate, 'HH24:MI:SS:US') as microseconds; timestamp | seconds | milliseconds | microseconds --------------------+----------+--------------+---------------- 2015-04-10 18:45:09 | 18:45:09 | 18:45:09.325 | 18:45:09:325143