그포스트그레SQL포맷중 기능은 다양한 변환을 위한 강력한 도구 세트를 제공합니다. 데이터 유형(날짜/시간, 정수, 부동 소수점, 숫자) 형식화된 문자열 및 형식화된 문자열을 다음으로 변환하는 데 사용됩니다. 특정 데이터 유형.테이블 6-12나열합니다. 이러한 함수는 모두 공통 호출을 따릅니다. 규칙: 첫 번째 인수는 젠 토토을 지정할 값이고 두 번째 인수는 출력을 정의하는 템플릿입니다. 입력 젠 토토입니다.
표 6-12. 서식 기능
| 기능 | 반품 | 설명 | 120PostgreSQL: 문서: 7.3: 데이터 유형 형식 지정 함수52 |
|---|---|---|---|
to_char(타임스탬프, 텍스트) |
텍스트 | 타임스탬프를 문자열로 변환 | to_char(타임스탬프 '지금','HH12:MI:SS') |
to_char(간격, 텍스트) |
텍스트 | 간격을 문자열로 변환 | to_char(간격 '15h 2m 12s','HH24:MI:SS') |
to_char(int, 텍스트) |
텍스트 | 정수를 문자열로 변환 | to_char(125, '999') |
to_char(배정밀도, 텍스트) |
텍스트 | 실수/배정밀도를 문자열로 변환 | to_char(125.8, '999D9') |
to_char(숫자, 텍스트) |
텍스트 | 숫자를 문자열로 변환 | to_char(숫자 '-125.8', '999D99S') |
to_date(텍스트, 텍스트) |
날짜 | 문자열을 날짜로 변환 | to_date('2000년 12월 5일', 'DD월 YYYY') |
to_timestamp(텍스트, 텍스트) |
타임스탬프 | 문자열을 타임스탬프로 변환 | to_timestamp('2000년 12월 5일', 'DD 월 YYYY') |
to_number(텍스트, 텍스트) |
숫자 | 문자열을 숫자로 변환 | to_number('12,454.8-', '99G999D9S') |
출력 템플릿 문자열에는 다음과 같은 특정 패턴이 있습니다. 인식되어 적절한 형식의 데이터로 대체됩니다. 형식을 지정할 값에서. 템플릿이 아닌 모든 텍스트 패턴은 단순히 그대로 복사됩니다. 마찬가지로 입력에서 템플릿 문자열, 템플릿 패턴은 보려는 입력 데이터 문자열과 찾을 값 거기.
테이블 6-13형식 지정에 사용할 수 있는 템플릿 패턴을 표시합니다. 날짜 및 시간 값입니다.
표 6-13. 날짜/시간에 대한 템플릿 패턴 전환
| 패턴 | 설명 |
|---|---|
| 흐흐 | 시간(01-12) |
| HH12 | 시간(01-12) |
| HH24 | 시간(00-23) |
| 미 | 분(00-59) |
| SS | 초(00-59) |
| MS | 밀리초(000-999) |
| 미국 | 마이크로초(000000-999999) |
| SSSS | 자정을 지난 초(0-86399) |
| 오전또는오전또는오후또는오후 | 자오선 표시(대문자) |
| 오전또는오전또는오후또는p.m. | 자오선 표시(소문자) |
| Y,YYY | 연도(4자리 이상), 쉼표 포함 |
| YYYY | 연도(4자리 이상) |
| YYY | 연도의 마지막 3자리 |
| YY | 연도 마지막 2자리 |
| Y | 연도의 마지막 숫자 |
| BC또는B.C.또는AD또는A.D. | 연대 표시(대문자) |
| bc또는b.c.또는광고또는ad. | 연대 표시(소문자) |
| 월 | 전체 대문자 월 이름(9까지 공백으로 채워짐) 문자) |
| 월 | 대소문자가 혼합된 전체 월 이름(9까지 공백으로 채워짐) 문자) |
| 월 | 전체 소문자 월 이름(9까지 공백으로 채워짐) 문자) |
| 월 | 대문자로 된 월 이름 축약형(3자) |
| 월 | 대소문자 혼합 월 이름 축약(3자) |
| 월 | 소문자로 된 월 이름(3자) |
| MM | 월 번호(01-12) |
| DAY | 전체 대문자 요일 이름(9까지 공백으로 채워짐) 문자) |
| 일 | 대소문자가 혼합된 전체 요일 이름(9까지 공백으로 채워짐) 문자) |
| 일 | 전체 소문자 요일 이름(9까지 공백으로 채워짐) 문자) |
| DY | 약어 대문자 요일 이름(3자) |
| 디 | 대소문자 혼합 요일 이름 축약(3자) |
| dy | 소문자로 된 요일 이름(3자) |
| DDD | 일(001-366) |
| DD | 일(01-31) |
| D | 요일(1-7; 일=1) |
| W | 첫 번째 주가 시작되는 달의 주(1-5) 매월 1일 |
| WW | 첫 번째 주가 시작되는 연도의 주 수(1-53) 그해의 첫날 |
| IW | ISO 주 수(매년 첫 번째 목요일) 새해는 1주차에 있습니다.) |
| CC | 세기(2자리) |
| J | 율리우스력 기념일(기원전 4712년 1월 1일 이후의 일수) |
| Q | 분기 |
| RM | 로마 숫자로 된 월(I-XII; I=1월) - 상위 사례 |
| rm | 로마 숫자로 된 월(I-XII; I=1월) - 아래 사례 |
| TZ | 시간대 이름 - 대문자 |
| tz | 시간대 이름 - 소문자 |
특정 수정자는 모든 템플릿 패턴에 적용되어 다음을 수행할 수 있습니다. 행동을 바꾸세요. 예를 들어,"FM월"이것은"월"패턴"FM"접두사.표 6-14날짜/시간에 대한 수정자 패턴을 표시합니다. 서식을 지정합니다.
표 6-14. 다음에 대한 템플릿 패턴 수정자 날짜/시간 변환
| 수정자 | 설명 | 예 |
|---|---|---|
| FM접두사 | 채우기 모드(패딩 공백 및 0 억제) | FM월 |
| TH접미사 | 대문자 서수 접미사 추가 | DDTH |
| 번째접미사 | 소문자 서수 접미사 추가 | DD번째 |
| FX접두사 | 고정 젠 토토 전역 옵션(사용 참고 사항 참조) | FX월 DD일 |
| SP접미사 | 주문 모드(아직 구현되지 않음) | DDSP |
날짜/시간 형식에 대한 사용 참고 사항:
FM앞에 오는 0을 억제하고 그렇지 않으면 추가될 후행 공백이 패턴의 출력은 고정 너비입니다.
to_timestamp그리고to_date여러 개의 공백 건너뛰기
다음과 같은 경우 입력 문자열에 공백이 있습니다.FX옵션이 사용되지 않습니다.FX반드시
템플릿의 첫 번째 항목으로 지정됩니다. 예를 들어to_timestamp('2000년 6월','YYYY 월')맞아요, 하지만to_timestamp('2000
JUN','FXYYYY MON')오류를 반환합니다. 왜냐하면to_timestamp한 개의 공백이 필요합니다.
공간만.
백슬래시("\")는 문자열 상수에 필요합니다. 이중 백슬래시("\\")를 입력해야 합니다. 예를 들어'\\HH\\MI\\SS'. 이는 누구에게나 마찬가지입니다. 문자열 상수 inPostgreSQL.
일반 텍스트가 허용됩니다.to_char템플릿을 사용하여 출력됩니다.
말 그대로. 하위 문자열을 큰따옴표로 묶어서 강제로 적용할 수 있습니다.
포함되어 있더라도 리터럴 텍스트로 해석됩니다.
패턴 키워드. 예를 들어,'"안녕하세요
연도 "YYYY', 그YYYY될 것이다
연도 젠 토토로 대체되었지만 단일Yin"연도"할 것이다
안 돼.
출력에 큰따옴표를 포함하려면 다음을 수행해야 합니다. 예를 들어 백슬래시를 앞에 붙입니다.'\\"YYYY월\\"'.
YYYY문자열에서 다음으로 변환타임스탬프또는날짜4자리 이상의 연도를 사용하는 경우 제한됩니다. 당신 이후에는 숫자가 아닌 문자나 템플릿을 사용해야 합니다.YYYY, 그렇지 않으면 연도는 항상 4자리로 해석됩니다. 예를 들어(20000년):to_date('200001131', 'YYYYMMDD')4자리 연도로 해석됩니다. 더 나은 것은 연도 뒤의 숫자가 아닌 구분 기호(예:to_date('20000-1131', 'YYYY-MMDD')또는to_date('20000Nov31', 'YYYYMonDD').
밀리초MS및 마이크로초미국다음에서 변환된 값 타임스탬프에 대한 문자열은 다음 초의 일부로 사용됩니다. 소수점. 예를 들어to_timestamp('12:3', 'SS:MS')3이 아닙니다 밀리초이지만 변환에서는 12로 계산되므로 300입니다. + 0.3. 이는 형식을 의미합니다.SS:MS, 입력값12:3, 12:30그리고12:300동일한 수를 지정하십시오. 밀리초. 3밀리초를 얻으려면 다음을 사용해야 합니다.12:003, 전환이 중요함 12 + 0.003 = 12.003초입니다.
여기에 더 복잡한 예가 있습니다:to_timestamp('15:12:02.020.001230','HH:MI:SS.MS.US')15시간 12분 2초 + 20밀리초 + 1230마이크로초 = 2.021230초.
테이블 6-15형식 지정에 사용할 수 있는 템플릿 패턴을 표시합니다. 숫자 값.
표 6-15. 숫자에 대한 템플릿 패턴 전환
| 패턴 | 설명 |
|---|---|
| 9 | 지정된 자릿수의 값 |
| 0 | 앞에 0이 있는 값 |
| .(마침표) | 소수점 |
| ,(쉼표) | 그룹 (천) 구분 기호 |
| 홍보 | 꺾쇠 괄호 안의 음수 값 |
| S | 빼기 기호가 있는 음수 값(로케일 사용) |
| L | 통화 기호(로케일 사용) |
| D | 소수점 (로케일 사용) |
| G | 그룹 구분 기호(로케일 사용) |
| 미 | 지정된 위치에 빼기 기호(숫자 <인 경우) 0) |
| PL | 지정된 위치에 더하기 기호(숫자 0) |
| SG | 지정된 위치에 더하기/빼기 기호 |
| RN | 로마숫자 (1~3999 사이에서 입력) |
| TH또는일 | 서수로 변환 |
| V | 시프트n숫자(참조 참고) |
| EEEE | 과학적 표기법(아직 구현되지 않음) |
숫자 형식에 대한 사용 참고 사항:
다음을 사용하여 형식화된 기호SG, PL또는미은 숫자의 기준점이 아닙니다. 예를 들어,to_char(-12, 'S9999')생산' -12'하지만to_char(-12, 'MI9999')생산'- 12'. 는 Oracle 구현에서는 다음의 사용을 허용하지 않습니다.미앞서9하지만 오히려 그렇게 해야 합니다.9선행미.
9동일한 값을 지정합니다. 자릿수는 그대로입니다.9s. 만약에 숫자를 사용할 수 없으면 공백이 출력됩니다.
TH값을 더 적게 변환하지 않습니다. 0보다 크고 십진수를 변환하지 않습니다.
PL, SG, 그리고TH아르포스트그레SQL확장.
V효과적으로
값 입력 방법:10^n, 여기서n다음의 자릿수입니다V. to_char다음의 사용을 지원하지 않습니다V소수점과 결합됩니다.
(예:99.9V99허용되지 않습니다.)
테이블
6-16사용의 몇 가지 예를 보여줍니다.to_char함수.
표 6-16.to_char예
| 입력 | 출력 |
|---|---|
| to_char(now(),'일, DD HH12:MI:SS') | '화요일, 06 05:39:18' |
| to_char(now(),'FMDay, FMDD HH12:MI:SS') | '6월 6일 화요일 05:39:18' |
| to_char(-0.1,'99.99') | ' -.10' |
| to_char(-0.1,'FM9.99') | '-.1' |
| to_char(0.1,'0.9') | ' 0.1' |
| to_char(12,'9990999.9') | ' 0012.0' |
| to_char(12,'FM9990999.9') | '0012' |
| to_char(485,'999') | ' 485' |
| to_char(-485,'999') | '-485' |
| to_char(485,'9 9 9') | ' 4 8 5' |
| to_char(1485,'9,999') | ' 1,485' |
| to_char(1485,'9G999') | ' 1 485' |
| to_char(148.5,'999.999') | ' 148.500' |
| to_char(148.5,'999D999') | ' 148,500' |
| to_char(3148.5,'9G999D999') | ' 3 148,500' |
| to_char(-485,'999S') | '485-' |
| to_char(-485,'999MI') | '485-' |
| to_char(485,'999MI') | '485' |
| to_char(485,'PL999') | '+485' |
| to_char(485,'SG999') | '+485' |
| to_char(-485,'SG999') | '-485' |
| to_char(-485,'9SG99') | '4-85' |
| to_char(-485,'999PR') | '<485' |
| to_char(485,'L999') | 'DM 485 |
| to_char(485,'RN') | ' CDLXXXV' |
| to_char(485,'FMRN') | 'CDLXXXV' |
| to_char(5.2,'FMRN') | V |
| to_char(482,'999번째') | ' 482번째' |
| to_char(485, '"좋아요 번호:"999') | '좋은 숫자: 485' |
| to_char(485.8,'"이전:"999" 게시물:" .999') | '이전: 485 포스트: .800' |
| to_char(12,'99V999') | ' 12000' |
| to_char(12.4,'99V999') | ' 12400' |
| to_char(12.45, '99V9') | ' 125' |