그포스트그레SQL형식 지정 함수는 다양한 데이터 유형(날짜/시간, 정수, 부동 소수점, 숫자)을 형식이 지정된 사설 토토 사이트열로 변환하고 형식이 지정된 사설 토토 사이트열을 특정 데이터 유형으로 변환하기 위한 강력한 도구 세트를 제공합니다.표 9.23나열합니다. 이러한 함수는 모두 공통 호출 규칙을 따릅니다. 첫 번째 인수는 형식을 지정할 값이고 두 번째 인수는 출력 또는 입력 형식을 정의하는 템플릿입니다.
표 9.23. 서식 기능
단일 인수도 있습니다to_timestamp함수; 참조표 9.30.
to_timestamp그리고to_date간단한 캐스팅으로 변환할 수 없는 입력 형식을 처리하기 위해 존재합니다. 대부분의 표준 날짜/시간 형식의 경우 소스 문자열을 필요한 데이터 유형으로 캐스팅하기만 하면 작동하며 훨씬 쉽습니다. 마찬가지로,to_number표준 숫자 표현에는 필요하지 않습니다.
에to_char출력 템플릿 문자열에는 인식되고 주어진 값을 기반으로 적절한 형식의 데이터로 대체되는 특정 패턴이 있습니다. 템플릿 패턴이 아닌 텍스트는 그대로 복사됩니다. 마찬가지로 입력 템플릿 문자열(다른 함수용)에서 템플릿 패턴은 입력 데이터 문자열에서 제공할 값을 식별합니다. 템플릿 문자열에 템플릿 패턴이 아닌 문자가 있는 경우 입력 데이터 문자열의 해당 문자는 단순히 건너뜁니다(템플릿 문자열 문자와 동일한지 여부에 관계 없음).
표 9.24날짜 및 시간 값 형식 지정에 사용할 수 있는 템플릿 패턴을 표시합니다.
표 9.24. 날짜/시간 형식을 위한 템플릿 패턴
| 패턴 | 설명 |
|---|---|
흐흐 |
시간(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 |
연도의 마지막 숫자 |
IYYY |
ISO 8601 주 번호 연도(4자리 이상) |
IYY |
ISO 8601 주 번호 지정 연도의 마지막 3자리 |
IY |
ISO 8601 주 번호 지정 연도의 마지막 2자리 |
I |
ISO 8601 주 번호 연도의 마지막 숫자 |
BC, bc, AD또는광고 |
연대 표시(마침표 없음) |
B.C., b.c., A.D.또는ad. |
연대 표시(마침표 포함) |
월 |
전체 대사설 토토 사이트 월 이름(9자까지 공백으로 채워짐) |
월 |
전체 대사설 토토 사이트로 된 월 이름(9자까지 공백으로 채워짐) |
월 |
전체 소사설 토토 사이트 월 이름(9자까지 공백으로 채워짐) |
월 |
약화된 대사설 토토 사이트 월 이름(영문 3자, 현지화된 길이는 다양함) |
월 |
대사설 토토 사이트로 축약된 월 이름(영문 3자, 현지화된 길이는 다양함) |
월 |
약식 소사설 토토 사이트 월 이름(영문 3자, 현지화된 길이는 다양함) |
MM |
월 번호(01-12) |
DAY |
전체 대사설 토토 사이트 요일 이름(9자까지 공백으로 채워짐) |
일 |
전체 대사설 토토 사이트로 된 요일 이름(9자까지 공백으로 채워짐) |
일 |
전체 소사설 토토 사이트 요일 이름(9자까지 공백으로 채워짐) |
DY |
약식 대사설 토토 사이트 요일 이름(영문 3자, 현지화된 길이는 다양함) |
디 |
대사설 토토 사이트로 축약된 요일 이름(영문 3자, 현지화된 길이는 다양함) |
dy |
약식 소사설 토토 사이트 요일 이름(영문 3자, 현지화된 길이는 다양함) |
DDD |
일(001-366) |
확인하세요 |
ISO 8601 주 번호 지정 연도의 일(001-371; 해당 연도의 1일은 첫 번째 ISO 주의 월요일입니다) |
DD |
일(01-31) |
D |
요일, 일요일(1) ~ 토요일(7) |
ID |
ISO 8601 요일, 월요일 (1) ~ 일요일(7) |
W |
월의 주(1-5)(첫 번째 주는 해당 월의 1일에 시작됨) |
WW |
연도의 주 수(1-53)(첫 번째 주는 해당 연도의 첫 번째 날에 시작됨) |
IW |
ISO 8601 주 번호 지정 연도의 주 번호(01-53; 해당 연도의 첫 번째 목요일은 1주에 속함) |
CC |
세기(2자리)(21세기는 2001-01-01에 시작됨) |
J |
율리우스력 날짜(기원전 4714년 11월 24일 현지 자정 이후의 정수 일수, 참조PostgreSQL : 문서 : 11 : B.7. 줄리안 무지개 토토) |
Q |
분기 |
RM |
월은 대문자 로마 숫자(I-XII; I=1월) |
rm |
월은 소문자 로마 숫자(i-xii; i=1월) |
TZ |
대문자 시간대 약어(다음에서만 지원됨to_char) |
tz |
소문자 시간대 약어(다음에서만 지원됨to_char) |
TZH |
시간대 시간 |
TZM |
시간대 분 |
OF |
UTC로부터의 시간대 오프셋(다음에서만 지원됨to_char) |
수정자는 모든 템플릿 패턴에 적용되어 동작을 변경할 수 있습니다. 예를 들어,FM월이것은월패턴이 있는FM수정자.표 9.25날짜/시간 형식에 대한 수정자 패턴을 표시합니다.
표 9.25. 날짜/시간 형식 지정을 위한 템플릿 패턴 수정자
| 수정자 | 설명 | 예 |
|---|---|---|
FM접두사 |
채우기 모드(선행 0 및 패딩 공백 억제) | FM월 |
TH접미사 |
대문자 서수 접미사 | DDTH예:12TH |
번째접미사 |
소문자 서수 접미사 | DD번째예:12번째 |
FX접두사 |
고정 형식 전역 옵션(사용 참고 사항 참조) | FX 월 DD 일 |
TM접두사 |
번역 모드(다음을 기준으로 현지화된 요일 및 월 이름 인쇄lc_time) | TM월 |
SP접미사 |
주문 모드(구현되지 않음) | DDSP |
날짜/시간 형식에 대한 사용 참고 사항:
FM패턴의 출력을 고정 너비로 만들기 위해 추가되는 선행 0과 후행 공백을 억제합니다. 에서PostgreSQL, FMOracle에서는 다음 사양만 수정합니다.FM모든 후속 사양에 영향을 미치며 반복됨FM수정자는 채우기 모드를 켜거나 끕니다.
TM후행 공백을 포함하지 않습니다.to_timestamp그리고to_date무시TM수정자.
to_timestamp그리고to_date다음이 아닌 경우 입력 문자열에서 여러 공백을 건너뜁니다.FX옵션이 사용됩니다. 예를 들어,to_timestamp('2000 6월', 'YYYY 월')작동하지만to_timestamp('2000 6월', 'FXYYYY 월')다음 이유로 인해 오류를 반환합니다.to_timestamp한 칸만 필요합니다.FX템플릿의 첫 번째 항목으로 지정되어야 합니다.
일반 텍스트가 허용됩니다.to_char템플릿이며 문자 그대로 출력됩니다. 템플릿 패턴이 포함된 경우에도 하위 문자열을 큰따옴표로 묶어 강제로 리터럴 텍스트로 해석할 수 있습니다. 예를 들어,'"안녕하세요 년 "YYYY', 그YYYY연도 데이터로 대체되지만 단일Y에연도그렇지 않을 것입니다. 에서to_date, to_number및to_timestamp, 리터럴 텍스트 및 큰따옴표로 묶인 문자열을 사용하면 문자열에 포함된 문자 수를 건너뜁니다. 예를 들어"XX"두 개의 입력 사설 토토 사이트를 건너뜁니다(그렇든 아니든XX).
출력에 큰따옴표를 포함하려면 앞에 백슬래시를 붙여야 합니다. 예를 들어'\"YYYY월\"'. 백슬래시는 큰따옴표로 묶인 문자열 외에는 특별하지 않습니다. 큰따옴표로 묶인 문자열 내에서 백슬래시는 다음 문자를 문자 그대로 받아들입니다(그러나 다음 문자가 큰따옴표나 다른 백슬래시가 아니면 특별한 효과가 없습니다).
에to_timestamp그리고to_date, 연도 형식 사양이 4자리 미만인 경우(예:YYY, 제공된 연도가 4자리 미만인 경우 연도는 2020년에 가장 가깝도록 조정됩니다. 예:951995년이 됩니다.
에to_timestamp그리고to_date, 음수 연도는 BC를 나타내는 것으로 간주됩니다. 음의 연도와 명시적인 연도를 모두 쓰는 경우BC필드를 사용하면 다시 AD를 받습니다. 0년 입력은 기원전 1년으로 처리됩니다.
에to_timestamp그리고to_date, 그YYYY변환에 4자리 이상의 연도를 처리하는 경우 제한이 있습니다. 이후에는 숫자가 아닌 문자나 템플릿을 사용해야 합니다.YYYY, 그렇지 않으면 연도는 항상 4자리로 해석됩니다. 예를 들어(20000년):to_date('200001131', 'YYYYMMDD')4자리 연도로 해석됩니다. 대신 연도 뒤에 숫자가 아닌 구분 기호를 사용하세요.to_date('20000-1131', 'YYYY-MMDD')또는to_date('20000Nov31', 'YYYYMonDD').
에to_timestamp그리고to_date, 그CC(세기) 필드는 허용되지만 다음이 있는 경우 무시됩니다.YYY, YYYY또는Y,YYY필드. 만일CC다음과 함께 사용됨YY또는Y그러면 결과는 지정된 세기의 해당 연도로 계산됩니다. 세기가 지정되었지만 연도가 지정되지 않은 경우 세기의 첫 번째 연도로 간주됩니다.
에to_timestamp그리고to_date, 요일 이름 또는 숫자(요일, D및 관련 필드 유형)이 허용되지만 결과 계산을 위해 무시됩니다. 분기(Q) 필드.
에to_timestamp그리고to_date, ISO 8601 주 번호 지정 날짜(그레고리력 날짜와 다름)는 다음 두 가지 방법 중 하나로 지정할 수 있습니다.
연도, 주, 요일: 예를 들어to_date('2006-42-4', 'IYYY-IW-ID')날짜를 반환합니다.2006-10-19. 평일을 생략하면 1(월요일)로 간주됩니다.
연도 및 일자: 예를 들어to_date('2006-291', 'IYYY-IDDD')또한 반환됨2006-10-19.
ISO 8601 주 번호 매기기 필드와 그레고리력 날짜 필드를 혼합하여 날짜를 입력하려는 시도는 의미가 없으며 오류가 발생합니다. ISO 8601 주 번호 지정 연도의 맥락에서 a“월”또는“월의 일”의미가 없습니다. 그레고리력의 맥락에서 ISO 주는 의미가 없습니다.
그동안to_date그레고리력과 ISO 주 번호 날짜 필드의 혼합을 거부합니다.to_char다음과 같은 출력 형식 사양 때문에 그렇지 않습니다.YYYY-MM-DD (IYYY-IDDD)유용할 수 있어요. 하지만 다음과 같은 글은 피하세요.IYYY-MM-DD; 그것은 연초에 놀라운 결과를 낳을 것입니다. (보다섹션 9.9.1자세한 내용은.)
에to_timestamp, 밀리초(MS) 또는 마이크로초(미국) 필드는 소수점 이하 초 자리로 사용됩니다. 예를 들어to_timestamp('12.3', 'SS.MS')은 3밀리초가 아니라 300입니다. 변환 시 12 + 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', 'HH24:MI:SS.MS.US')15시간 12분 2초 + 20밀리초 + 1230마이크로초 = 2.021230초입니다.
to_char(..., 'ID')의 요일 번호가 다음과 일치합니다.추출(isodow ...에서)함수이지만to_char(..., 'D')'s가 일치하지 않습니다.추출(다우...)일 번호 매기기.
to_char(간격)형식흐흐그리고HH1212시간제로 표시됩니다. 예를 들어 0시간과 36시간은 모두 다음과 같이 출력됩니다.12, 그동안HH24한 시간에 23을 초과할 수 있는 전체 시간 값을 출력합니다.간격값.
표 9.26숫자 값의 형식을 지정하는 데 사용할 수 있는 템플릿 패턴을 표시합니다.
표 9.26. 숫자 서식을 위한 템플릿 패턴
| 패턴 | 설명 |
|---|---|
9 |
자리 위치(중요하지 않은 경우 삭제할 수 있음) |
0 |
숫자 위치(사소하더라도 삭제되지 않음) |
.(마침표) |
소수점 |
,(쉼표) |
그룹(천) 구분 기호 |
홍보 |
꺾쇠 괄호 안의 음수 값 |
S |
번호에 고정된 기호(로케일 사용) |
L |
통화 기호(로케일 사용) |
D |
소수점 (로케일 사용) |
G |
그룹 구분 기호(로케일 사용) |
미 |
지정된 위치에 빼기 기호(숫자 < 0인 경우) |
PL |
지정된 위치에 더하기 기호(숫자 0인 경우) |
SG |
지정된 위치에 더하기/빼기 기호 |
RN |
로마숫자(1~3999 사이에서 입력) |
TH또는번째 |
서수 접미사 |
V |
지정된 자릿수 이동(참고 참조) |
EEEE |
과학적 표기법의 지수 |
숫자 서식 사용 참고사항:
0선행/후행 0이 포함된 경우에도 항상 인쇄될 숫자 위치를 지정합니다.9또한 숫자 위치를 지정하지만 선행 0이면 공백으로 대체되고 후행 0이고 채우기 모드가 지정되면 삭제됩니다. (에 대해to_number(), 이 두 패턴 문자는 동일합니다.)
형식이 형식화되는 숫자보다 더 적은 소수 자릿수를 제공하는 경우,to_char()숫자를 지정된 소수 자릿수로 반올림합니다.
패턴 문자S, L, D및G현재 로케일에 의해 정의된 기호, 통화 기호, 소수점 및 천 단위 구분 문자를 나타냅니다(참조lc_monetary그리고lc_numeric). 패턴 문자 마침표와 쉼표는 로케일에 관계없이 소수점 및 천 단위 구분 기호의 의미와 함께 정확한 문자를 나타냅니다.
로그인에 대한 명시적인 규정이 없는 경우to_char()의 패턴에 따라 하나의 열은 기호용으로 예약되며 숫자에 고정됩니다(바로 왼쪽에 나타남). 만일S일부의 바로 왼쪽에 나타남9's, 마찬가지로 숫자에 고정됩니다.
다음을 사용하여 형식화된 기호SG, PL또는미번호에 고정되어 있지 않습니다. 예를 들어,to_char(-12, 'MI9999')생산'- 12'그러나to_char(-12, 'S9999')생산' -12'. (Oracle 구현에서는 다음의 사용을 허용하지 않습니다.미이전9, 오히려 그렇게 해야 합니다.9선행미.)
TH0보다 작은 값을 변환하지 않으며 분수를 변환하지 않습니다.
PL, SG및TH아르PostgreSQL확장.
에to_number, 다음과 같은 비데이터 템플릿 패턴인 경우L또는TH가 사용되면 데이터 문자(즉, 숫자, 기호, 소수점 또는 쉼표)가 아닌 한 템플릿 패턴과 일치하는지 여부에 관계없이 해당 수의 입력 문자를 건너뜁니다. 예를 들어,TH데이터가 아닌 두 사설 토토 사이트를 건너뜁니다.
V와to_char입력 값에 다음을 곱합니다10^, 여기서nn다음의 자릿수입니다V. V와to_number비슷한 방식으로 나눕니다.to_char그리고to_number다음의 사용을 지원하지 않습니다V소수점과 결합됨(예:99.9V99허용되지 않습니다).
EEEE(과학적 표기법)은 숫자 및 소수점 패턴 이외의 다른 형식 지정 패턴이나 수식어와 함께 사용할 수 없으며 형식 문자열 끝에 있어야 합니다(예:9.99EEEE유효한 패턴입니다.)
특정 수정자는 템플릿 패턴에 적용되어 동작을 변경할 수 있습니다. 예를 들어,FM99.99이것은99.99패턴이 있는FM수정자.표 9.27숫자 형식 지정에 대한 수정자 패턴을 표시합니다.
표 9.27. 숫자 서식을 위한 템플릿 패턴 수정자
| 수정자 | 설명 | 예 |
|---|---|---|
FM접두사 |
채우기 모드(후행 0 및 패딩 공백 억제) | FM99.99 |
TH접미사 |
대문자 서수 접미사 | 999TH |
번째접미사 |
소문자 서수 접미사 | 999번째 |
표 9.28사용의 몇 가지 예를 보여줍니다to_char함수.
표 9.28. to_char예
| 표현 | 결과 |
|---|---|
to_char(current_timestamp, '일, DD HH12:MI:SS') |
'화요일 , 06 05:39:18' |
to_char(current_timestamp, 'FMDay, FMDD HH12:MI:SS') |
'화요일 6 05:39:18' |
to_char(-0.1, '99.99') |
' -.10' |
to_char(-0.1, 'FM9.99') |
'-.1' |
to_char(-0.1, 'FM90.99') |
'-0.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, 'FM999.999') |
'148.5' |
to_char(148.5, 'FM999.990') |
'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, 'FM999MI') |
'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, '"Pre:"999" 게시물:" .999') |
'사전: 485 포스트: .800' |
to_char(12, '99V999') |
' 12000' |
to_char(12.4, '99V999') |
' 12400' |
to_char(12.45, '99V9') |
' 125' |
to_char(0.0004859, '9.99EEEE') |
' 4.86e-04' |