저자 :Karel Zak ( 작성자)
<zakkr@zf.jcu.cz
) on 2000-01-24
PostgreSQL서식 기능은 다양한 변환을위한 강력한 도구 세트를 제공합니다. 데이터 유형 (날짜/시간, 정수, 부동 소수점, 숫자) 형식의 문자열 및 형식으로부터 형식화 된 문자열에서 변환하기 위해 특정 데이터 유형. 이 기능은 모두 공통의 부름을 따릅니다 컨벤션 : 첫 번째 논쟁은 형식화 될 값이며 두 번째 인수는 출력을 정의하거나 입력 형식.
표 4-11. 함수 서식
기능 | 반환 | 설명 | example |
---|---|---|---|
토토 핫 (타임 스탬프, 텍스트) |
텍스트 | 타임 스탬프를 문자열로 변환 | 토토 핫 (타임 스탬프 '지금', 'hh12 : mi : ss') |
토토 핫 (간격, 텍스트) |
텍스트 | 간격을 문자열로 변환 | 토토 핫 (간격 '15h 2m 12s ','hh24 : mi : ss ') |
토토 핫 (int, 텍스트) |
텍스트 | int4/int8을 문자열로 변환 | 토토 핫 (125, '999') |
토토 핫 (이중 정밀, 텍스트) |
텍스트 | 실제/이중 정밀도를 문자열로 변환 | 토토 핫 (125.8, '999D9') |
토토 핫 (숫자, 텍스트) |
텍스트 | 숫자를 문자열로 변환 | 토토 핫 (숫자 '-125.8', '999d99s') |
to_date (텍스트, 텍스트) |
날짜 | 날짜로 문자열 변환 | TO_DATE ('05 DEC 2000 ','DD MON yyyy ') |
TO_TIMESTAMP (텍스트, 텍스트) |
타임 스탬프 | 스트링을 타임 스탬프로 변환 | TO_TIMESTAMP ('05 Dec 2000 ','dd Mon Yyyy ') |
to_number (텍스트, 텍스트) |
숫자 | 문자열을 숫자로 변환 | to_number ('12, 454.8- ', '99G999D9S') |
출력 템플릿 문자열에는 특정 패턴이 있습니다. 적절한 형식의 데이터로 인식되고 대체됩니다 포맷 할 값에서. 템플릿이 아닌 텍스트 패턴은 간단하게 복사됩니다. 마찬가지로 입력에 템플릿 문자열, 템플릿 패턴의 부분을 식별합니다 살펴볼 데이터 문자열 및 찾을 수있는 값 거기.
표 4-12. 날짜/시간에 대한 템플릿 패턴 전환
패턴 | 설명 |
---|---|
HH | 시간의 시간 (01-12) |
HH12 | 시간의 시간 (01-12) |
HH24 | 시간의 시간 (00-23) |
mi | 분 (00-59) |
SS | Second (00-59) |
MS | millisecond (000-999) |
US | 마이크로 초 (000000-99999) |
SSSS | 자정을지나 초 초 (0-86399) |
am또는A.M.또는PM또는p.m. | 자오선 표시기 (대문자) |
AM또는A.M.또는PM또는p.m. | 자오선 표시기 (소문자) |
y, yyy | Comma와 함께 연도 (4 개 이상의 자리) |
yyyy | 연도 (4 개 이상의 숫자) |
yyy | 지난 3 자리 |
yy | 지난 2 자리 |
y | 올해의 마지막 숫자 |
BC또는B.C.또는ad또는a.d. | ERA 표시기 (대문자) |
BC또는B.C.또는ad또는a.d. | ERA 표시기 (소문자) |
Month | 전체 대문자 달 이름 (빈 정지 상태 9 숯) |
Month | 전체 혼합 케이스 월 이름 (빈 태디에 9 숯) |
Month | 전체 소문자 이름 (빈 태워드에 9 숯) |
Mon | 약식 상류 월 이름 (3 숯) |
Mon | 약식 혼합 사례 월 이름 (3 숯) |
mon | 약식 소문자 월 이름 (3 숯) |
mm | 월 번호 (01-12) |
19266_19271 | 전체 상류의 날 이름 (빈 태워드에 9 숯) |
day | 전체 혼합 케이스 데이 이름 (빈 정지 상태 9 숯) |
day | 전체 소문자 이름 (빈 태워드에 9 숯) |
dy | 약식 상류의 날 이름 (3 숯) |
dy | 약식 혼합 케이스 데이 이름 (3 숯) |
dy | 약식 소문자 일자 이름 (3 숯) |
DDD | 연도 (001-366) |
dd | 매월 (01-31) |
d | 요일 (1-7; Sun = 1) |
w | 월 주 (1-5) 첫 주가 시작되는 곳 월 첫날 |
ww | 첫 주가 시작되는 주 주 수 (1-53) 올해의 첫날 |
iw | ISO 주 연도 (첫 번째 목요일 목요일 새해는 1 주차입니다.) |
CC | Century (2 자리) |
J | Julian Day (기원전 4712 년 1 월 1 일 이후) |
Q | Quarter |
rm | 로마 숫자의 달 (i -xii; i = 1 월) - 상단 사례 |
rm | 로마 숫자의 달 (i -xii; i = 1 월) - 낮은 사례 |
TZ | Timezone Name -Upperase |
TZ | Timezone Name- 소문자 |
특정 수정자가 모든 템플릿 패턴에 적용될 수 있습니다. 행동을 변경합니다. 예를 들어,"fmmonth""Month"패턴과"FM"prefix.
표 4-13. 템플릿 패턴 수정 자 날짜/시간 변환
Modifier | 설명 | example |
---|---|---|
FMprefix | 채우기 모드 (패딩 블랭크 및 제로 억제) | fmmonth |
th접미사 | 상단 신문 서수 접미사 추가 | ddth |
th접미사 | 소문자 서수 접미사 추가 | ddth |
FXprefix | 고정 형식 글로벌 옵션 (아래 참조) | FX Month DD Day |
SP접미사 | 주문 모드 (아직 구현되지 않음) | DDSP |
사용 메모 :
FM주요 제로를 억제하거나 그렇지 않으면 추가로 추가되는 후행 블랭크 패턴의 출력은 고정 된 범위입니다.
TO_TIMESTAMP
andto_date
다중 비어를 건너 뜁니다
입력 문자열의 공백 인 경우FX옵션이 사용되지 않습니다.fx템플릿의 첫 번째 항목으로 지정됩니다. 예를 들어TO_TIMESTAMP ( '2000 Jun', 'yyyy mon')옳지 만TO_TIMESTAMP ( '2000
Jun ','fxyyyy mon ')오류를 반환합니다.TO_TIMESTAMP
하나를 기대합니다
우주 전용.
백 슬래시 인 경우 ("\")는 문자열 상수에서 요구됩니다 이중 백 슬래시 ("\\") 입력해야합니다. 예를 들어'\\ hh \\ mi \\ ss'. 이것은 누구에게도 마찬가지입니다 문자열 상수에서PostgreSQL.
일반 텍스트가 허용됩니다토토 핫
템플릿 및 출력이됩니다
문자 그대로. 이중 인용문으로 하위 문자열을 넣을 수 있습니다.
포함하더라도 문자 그대로 텍스트로 해석됩니다.
패턴 키워드. 예를 들어,' "안녕하세요
연도 : "yyyy ',yyyy연도 데이터로 대체되었지만 단일y.
출력에 이중 견적을 원한다면 예를 들어 백 슬래시로 우선합니다'\\ "yyyy month \\"'.
yyyy문자열에서로 변환타임 스탬프또는날짜4 자리 이상으로 1 년을 사용하면 제한됩니다. 너 이후에 숫자가 아닌 문자 또는 템플릿을 사용해야합니다.yyyy, 그렇지 않으면 연도는 항상입니다 4 자리로 해석됩니다. 예를 들어 (20000 년과 함께) :to_date ( '2000001131', 'yyyymmdd')4 자리 연도로 해석됩니다. 더 나은 것은 a를 사용하는 것입니다 연도 이후의 비수분 분리기,to_date ( '20000-1131', 'yyyy-mmdd')또는TO_DATE ( '20000NOV31', 'yyyymondd').
millisecondMS및 마이크로 초US전환의 값 문자열 대 타임 스탬프는 다음 초의 일부로 사용됩니다. 소수점. 예를 들어TO_TIMESTAMP ('12 : 3 ','SS : MS ')는 3이 아닙니다 전환이 12로 계산되기 때문에 밀리 초, 300은 300입니다. + 0.3. 이것은 형식을 의미합니다SS : MS, 입력 값12:3, 12:30및12:300동일한 수를 지정하십시오 밀리 초. 3 밀리 초를 얻으려면 사용해야합니다12:003AS 12 + 0.003 = 12.003 초.
여기 더 복잡한 예가 있습니다 :TO_TIMESTAMP ('15 : 12 : 02.020.001230 ','HH : MI : SS.MS.US ')15 시간, 12 분 및 2 초 + 20 밀리 초 +입니다. 1230 마이크로 초 = 2.021230 초.
표 4-14. 숫자의 템플릿 패턴 전환
패턴 | 설명 |
---|---|
9 | 지정된 숫자 수의 값 |
0 | 주요 0과의 가치 |
.(기간) | 소수점 |
,(쉼표) | 그룹 (천) 분리기 |
PR | 각도 괄호의 음수 값 |
S | 마이너스 부호가있는 음수 값 (로케일 사용) |
l | 통화 기호 (로케일 사용) |
d | 소수점 지점 (로케일 사용) |
g | 그룹 분리기 (로케일 사용) |
mi | 지정된 위치에있는 마이너스 부호 (if number < 0) |
pl | 지정된 위치에 서명 (번호 0) |
SG | plus/minus sign in speignified position |
RN | 로마 숫자 (1과 3999 사이의 입력) |
TH또는TH | 서수로 변환 |
V | Shiftn숫자 (참조 노트) |
EEEE | 과학 표기법 (아직 구현되지 않음) |
사용지 참고 :
|SG, pl또는MI그 숫자의 앵커가 아닙니다. 예를 들어,토토 핫 (-12, 'S9999')생산' -12 '그러나토토 핫 (-12, 'mi9999')생산'-12'. 그만큼 Oracle 구현은의 사용을 허용하지 않습니다.mi앞서9, 그러나 오히려 그것을 요구합니다9precedemi.
9동일 한 값을 지정합니다 존재하는 숫자 수9s. 만약에 숫자는 사용할 수 없습니다. 빈 공간을 사용합니다.
th값을 덜 변환하지 않습니다 제로보다는 소수점 숫자를 변환하지 않습니다.
pl, SG, 그리고tharepostgresql확장.
V효과적으로 곱합니다
입력 값10^n, 여기서n다음 자리 수입니다V. 토토 핫
사용을 지원하지 않습니다V소수점과 결합.
(예 :99.9V99허용되지 않습니다.)
표 4-15.토토 핫
예
입력 | 출력 |
---|---|
토토 핫 (now (), 'Day, Dd hh12 : mi : ss ') | '화요일, 06 05:39:18' |
토토 핫 (now (), 'fmday, fmdd hh12 : mi : ss ') | '화요일, 6 05:39:18' |
토토 핫 (-0.1, '99 .99 ') | ' -.10 ' |
토토 핫 (-0.1, 'fm9.99') | '-. 1' |
토토 핫 (0.1, '0.9') | ' 0.1 ' |
토토 핫 (12, '9990999.9') | ' 0012.0 ' |
토토 핫 (12, 'FM9990999.9') | '0012' |
토토 핫 (485, '999') | ' 485 ' |
토토 핫 (-485, '999') | '-485' |
토토 핫 (485, '9 9 9') | ' 4 8 5 ' |
토토 핫 (1485, '9,999') | ' 1,485 ' |
토토 핫 (1485, '9G999') | ' 1 485 ' |
토토 핫 (148.5, '999.999') | ' 148.500 ' |
토토 핫 (148.5, '999D999') | ' 148,500 ' |
토토 핫 (3148.5, '9G999D999') | ' 3 148,500 ' |
토토 핫 (-485, '999S') | '485-' |
토토 핫 (-485, '999mi') | '485-' |
토토 핫 (485, '999mi') | '485' |
토토 핫 (485, 'PL999') | '+485' |
토토 핫 (485, 'SG999') | '+485' |
토토 핫 (-485, 'sg999') | '-485' |
토토 핫 (-485, '9SG99') | '4-85' |
토토 핫 (-485, '999PR') | '<485' |
토토 핫 (485, 'l999') | 'DM 485 |
토토 핫 (485, 'rn') | ' cdlxxxv ' |
토토 핫 (485, 'fmrn') | 'CDLXXXV' |
토토 핫 (5.2, 'fmrn') | V |
토토 핫 (482, '999th') | ' 482nd ' |
토토 핫 (485, ' " 번호 : "999 ') | '좋은 번호 : 485' |
토토 핫 (485.8, ' "PRE :"999 "POST :" .999 ') | 'pre : 485 게시물 : .800' |
토토 핫 (12, '99V999') | ' 12000 ' |
토토 핫 (12.4, '99V999') | ' 12400 ' |
토토 핫 (12.45, '99V9') | ' 125 ' |