thepostgresql서식 함수는 다양한 데이터 유형 (날짜/시간, 정수, 플로팅 포인트, 숫자)을 형식으로 변환하고 서식 된 토토 사이트열에서 특정 데이터 유형으로 변환하기위한 강력한 도구 세트를 제공합니다.표 9.26나열됩니다. 이러한 기능은 모두 공통 통화 규칙을 따릅니다. 첫 번째 인수는 형식화 할 값이며 두 번째 인수는 출력 또는 입력 형식을 정의하는 템플릿입니다..
표 9.26. 함수 서식
기능 설명 예제 |
---|
주어진 형식에 따라 타임 스탬프를 문자열로 변환합니다.
|
주어진 형식에 따라 간격을 문자열로 변환합니다.
|
지정된 형식에 따라 번호를 토토 사이트열로 변환합니다. 사용 가능
|
주어진 형식에 따라 문자열을 날짜로 변환합니다.
|
주어진 형식에 따라 문자열을 숫자로 변환합니다.
|
주어진 형식에 따라 문자열을 타임 스탬프로 변환합니다. (참조
|
TO_TIMESTAMP
andto_date
간단한 캐스팅으로 변환 할 수없는 입력 형식을 처리하기 위해 존재합니다. 대부분의 표준 날짜/시간 형식의 경우 소스 문자열을 필요한 데이터 유형 작업에 시전하면 훨씬 쉽습니다. 비슷하게,to_number
표준 숫자 표현의 경우 불필요합니다.
into_char
출력 템플릿 문자열에는 주어진 값을 기반으로 적절한 형식의 데이터로 인식되고 대체되는 특정 패턴이 있습니다. 템플릿 패턴이 아닌 텍스트는 단순히 구두로 복사됩니다. 마찬가지로, 입력 템플릿 문자열 (다른 함수의 경우)에서 템플릿 패턴은 입력 데이터 문자열에 의해 제공 될 값을 식별합니다. 템플릿 문자열에 템플릿 패턴이 아닌 문자가있는 경우 입력 데이터 문자열의 해당 문자가 간단히 건너 뜁니다 (템플릿 문자열 문자와 같지 않든).
표 9.27날짜 및 시간 값을 형식화하는 데 사용할 수있는 템플릿 패턴을 표시합니다.
표 9.27. 날짜/시간 서식을위한 템플릿 패턴
패턴 | 설명 |
---|---|
HH |
시간의 시간 (01–12) |
HH12 |
시간의 시간 (01–12) |
HH24 |
시간의 시간 (00–23) |
mi |
분 (00–59) |
SS |
Second (00–59) |
MS |
millisecond (000–999) |
US |
마이크로 초 (000000–99999) |
FF1 |
두 번째 10 번째 (0–9) |
FF2 |
백분의 초 (00–99) |
ff3 |
밀리 초 (000–999) |
FF4 |
10 분의 1 밀리 초 (0000–9999) |
FF5 |
백분의 밀리 초 (00000–99999) |
FF6 |
마이크로 초 (000000–999999) |
SSSS , SSSS |
자정을지나 초 (0–86399) |
am , am , PM 또는PM |
Meridiem 표시기 (기간 없음) |
A.M. , A.M. , p.m. 또는p.m. |
Meridiem 표시기 (기간 포함) |
y, yyy |
Comma와 함께 연도 (4 개 이상의 숫자) |
yyyy |
연도 (4 자리 이상) |
yyy |
지난 3 자리 |
yy |
지난 2 자리 |
y |
올해의 마지막 숫자 |
iyyy |
ISO 8601 주 기간 (4 자리 이상) |
iyy |
ISO의 마지막 3 자리 8601 주 기적 연도 |
iy |
ISO 8601 주 기간의 마지막 2 자리 |
i |
ISO의 마지막 숫자 8601 주 기적 연도 |
BC , BC , ad 또는ad |
ERA 표시기 (기간 없음) |
B.C. , B.C. , a.d. 또는a.d. |
ERA 표시기 (기간 포함) |
Month |
전체 대토토 사이트 달 이름 (9 숯으로 빈 공간) |
Month |
전체 대토토 사이트 월 이름 (빈 정지에 9 숯) |
Month |
전체 소토토 사이트 달 이름 (빈 태워에 9 숯) |
mon |
약식 상류 월 이름 (영어로 된 3 숯, 현지 길이는 다양) |
mon |
약식 대토토 사이트 월 이름 (영어로 된 3 숯, 현지화 된 길이는 다양함) |
MON |
약식 소토토 사이트 이름 (영어로 된 3 숯, 현지화 된 길이는 다양) |
mm |
월 번호 (01–12) |
day |
전체 대토토 사이트 날 이름 (9 숯으로 빈 정지) |
day |
전체 대토토 사이트 날 이름 (9 숯으로 빈 정지) |
day |
전체 소토토 사이트 이름 (9 숯으로 빈 정지) |
dy |
약식 상류의 날 이름 (영어로 된 3 숯, 현지화 된 길이는 다양) |
dy |
약식 자본화 된 날 이름 (영어로 된 3 숯, 현지화 된 길이는 다양) |
dy |
약식 소토토 사이트 이름 (영어로 된 3 숯, 현지 길이는 다양함) |
DDD |
연말 (001–366) |
iddd |
ISO의 날 8601 주 1 주일 (001–371; 올해의 1 일은 첫 번째 ISO 주일의 월요일) |
DD |
매월 (01–31) |
d |
주일, 일요일 (1 ) ~ 토요일 (7 ) |
id |
ISO 8601 주일, 월요일 (1 ) ~ 일요일 (7 ) |
W |
월 주 (1-5) (첫 주가 월 첫날에 시작) |
ww |
주간 수 (1-53) (첫 주가 첫날에 시작) |
iw |
ISO 8601 주 기적 연도 (01–53; 연도의 첫 번째 목요일은 1 주차) |
CC |
Century (2 자리) (21 세기는 2001-01-01에서 시작) |
J |
줄리안 날짜 (기원전 4714 년 11 월 24 일 이후의 정수 일;PostgreSQL : 문서 : 17 : B.7. 줄리안 젠 토토) |
Q |
Quarter |
rm |
대문자 로마 숫자의 달 (i – xii; i = 1 월) |
rm |
소문자 로마 숫자의 달 (i – xii; i = 1 월) |
TZ |
대토토 사이트 시간 구역 약어 |
TZ |
소토토 사이트 시간 구역 약어 |
TZH |
시간대 시간 |
TZM |
시간대 분 |
of |
UTC에서 시간대 오프셋 (HH 또는HH : mm ) |
수정자는 모든 템플릿 패턴에 적용하여 동작을 변경할 수 있습니다. 예를 들어,fmmonth
Month
패턴FM
수정 자.표 9.28날짜/시간 형식의 수정 자 패턴을 보여줍니다.
표 9.28. 날짜/시간 서식을위한 템플릿 패턴 수정 자
수정 자 | 설명 | example |
---|---|---|
FM prefix |
채우기 모드 (선행 제로 및 패딩 블랭드 억제) | fmmonth |
th 접미사 |
어퍼 케이스 서수 접미사 | ddth , 예 :12th |
th 접미사 |
소문자 서수 접미사 | ddth , 예 :12th |
FX 접두사 |
고정 형식 글로벌 옵션 (사용 메모 참조) | FX Month DD Day |
TM prefix |
번역 모드 (현지일 및 월 이름을 기준으로LC_TIME) | tmmonth |
SP 접미사 |
주문 모드 (구현되지 않음) | DDSP |
날짜/시간 형식에 대한 사용 메모 :
FM
패턴의 출력을 고정 된 범위로 만들기 위해 추가 된 제로와 후행 블랭크를 억제합니다. 안에PostgreSQL, FM
Oracle에서 다음 사양 만 수정합니다FM
모든 후속 사양에 영향을 미치고 반복FM
수정자는 채우기 모드를 켜고 끄는 모드를 전환합니다.
TM
후행 공백을 억제하는지 여부FM
지정되어 있습니다.
to_timestamp
andto_date
입력의 토토 사이트 사례를 무시합니다. 예를 들어MON
, mon
및Mon
모두 같은 토토 사이트열을 받아들입니다. 를 사용할 때TM
수정 자, 케이스 폴딩은 함수의 입력 규칙에 따라 수행됩니다 (참조PostgreSQL : 문서 : 17 : 23.2. 메이저 토토 사이트 Support).
TO_TIMESTAMP
andto_date
입력 문자열의 시작 부분에 여러 개의 빈 공간을 건너 뛰고 날짜 및 시간 값 주변FX
옵션이 사용됩니다. 예를 들어,TO_TIMESTAMP ( '2000 Jun', 'yyyy mon')
및TO_TIMESTAMP ( '2000 -Jun', 'yyyy -mon')
일하지만to_timestamp ( '2000 Jun', 'fxyyyy mon')
오류를 반환하기 때문에TO_TIMESTAMP
단일 공간 만 기대합니다.FX
템플릿의 첫 번째 항목으로 지정해야합니다.
템플릿 문자열의 분리기 (공간 또는 비 독서/비가 자릿수 문자)TO_TIMESTAMP
andto_date
입력 토토 사이트열의 단일 분리기와 일치하거나이 아니라면 건너 뜁니다.FX
옵션이 사용됩니다. 예를 들어,to_timestamp ( '2000jun', 'yyyy /// mon')
및to_timestamp ( '2000/jun', 'yyyy mon')
작업하지만to_timestamp ( '2000 // jun', 'yyyy/mon')
입력 토토 사이트열의 분리기 수가 템플릿의 분리기 수를 초과하여 오류를 반환합니다.
ifFX
지정되어 있으며 템플릿 토토 사이트열의 분리기는 입력 토토 사이트열에서 정확히 하나의 토토 사이트와 일치합니다. 그러나 입력 토토 사이트열 토토 사이트는 템플릿 토토 사이트열에서 분리기와 동일 할 필요가 없습니다. 예를 들어,to_timestamp ( '2000/jun', 'fxyyyy mon')
작품이지만TO_TIMESTAMP ( '2000/jun', 'fxyyyy mon')
템플릿 토토 사이트열의 두 번째 공간이 토토 사이트를 소비하기 때문에 오류를 반환합니다J
입력 토토 사이트열에서.
aTZH
템플릿 패턴은 서명 된 번호와 일치 할 수 있습니다. 없이FX
옵션, 마이너스 표시는 모호 할 수 있으며 분리기로 해석 될 수 있습니다. 이 모호성은 다음과 같이 해결됩니다. 이전 분리기의 수는TZH
템플릿 토토 사이트열에서 입력 토토 사이트열의 마이너스 부호가 나오기 전에 분리기 수보다 작습니다. 마이너스 부호는의 일부로 해석됩니다.TZH
. 그렇지 않으면 마이너스 부호는 값 간의 분리기로 간주됩니다. 예를 들어,to_timestamp ( '2000-10', 'yyyy tzh')
매치-10
toTZH
그러나to_timestamp ( '2000-10', 'yyyy tzh')
매치10
toTZH
.
일반 텍스트가 허용됩니다TO_CHAR
템플릿 및 문자 그대로 출력됩니다. 템플릿 패턴이 포함되어 있어도 문자 그대로 해석되도록 하위 문자열을 이중 따옴표로 넣을 수 있습니다. 예를 들어,' "Hello Year"yyyy'
, Theyyyy
연도 데이터로 대체되지만 단일y
inyear
안에to_date
, to_number
및TO_TIMESTAMP
, 문자 그럴 텍스트와 두 배의 문자열은 문자열에 포함 된 문자 수를 건너 뜁니다. 예를 들어"xx"
두 개의 입력 토토 사이트를 건너 뛰십시오 (xx
).
이전PostgreSQL12, 비 레터 또는 비 디지털 문자를 사용하여 입력 문자열에서 임의의 텍스트를 건너 뛸 수있었습니다. 예를 들어,to_timestamp ( '2000y6m1d', 'yyyy-mm-dd')
작동하는 데 사용되었습니다. 이제이 목적으로 만 토토 사이트를 사용할 수 있습니다. 예를 들어,TO_TIMESTAMP ( '2000Y6M1D', 'yyytmmtddt')
및to_timestamp ( '2000y6m1d', 'yyyy "y"mm "m"dd "d")
skipy
, M
및D
.
출력에 이중 견적을 원한다면 백 슬래시와 앞서야합니다.'\ "yyyy month \"'
. 백 슬래시는 그렇지 않으면 두 배의 줄기 외부에서 특별하지 않습니다. 이중 인용 문자열 내에서 백 슬래시는 다음 캐릭터를 문자 그대로 촬영하게합니다 (그러나 다음 캐릭터가 이중 인용문 또는 다른 백 슬래시가 아닌 한 특별한 효과가 없습니다)..
inTO_TIMESTAMP
및to_date
, 연도 형식 사양이 4 자리 미만인 경우 (예 :yyy
, 공급 된 연도는 4 자리 미만이며, 연도는 2020 년에 가장 가까운 것으로 조정됩니다 (예 :95
1995 년이됩니다.
inTO_TIMESTAMP
및to_date
, 부정적인 해는 BC를 의미하는 것으로 취급됩니다. 부정적인 해와 명시 적으로 글을 쓰면BC
필드, 당신은 다시 광고를 얻습니다. 제로의 입력은 기원전 1으로 취급됩니다.
inTO_TIMESTAMP
및to_date
, Theyyyy
변환은 4 자리 이상으로 연도를 처리 할 때 제한이 있습니다. 이후에 숫자가 아닌 문자 또는 템플릿을 사용해야합니다.yyyy
, 그렇지 않으면 연도는 항상 4 자리로 해석됩니다. 예를 들어 (20000 년과 함께) :to_date ( '200001130', 'yyyymmdd')
4 자리로 해석됩니다. 대신와 같이 연중 이후에 비수분 분리기를 사용하십시오to_date ( '20000-1130', 'yyyy-mmdd')
또는TO_DATE ( '20000NOV30', 'yyyymondd')
.
inTO_TIMESTAMP
및to_date
, TheCC
(Century) 필드는 받아 들여지지 만 A가 있으면 무시됩니다yyy
, yyyy
또는y, yyy
필드. 만약에CC
yy
또는y
그러면 결과는 지정된 세기의 해당 연도와 같이 계산됩니다. 세기가 명시되어 있지만 해가 그렇지 않다면, 세기의 첫해는 가정됩니다.
inTO_TIMESTAMP
및to_date
, 주중 이름 또는 숫자 (day
, D
및 관련 필드 유형)은 허용되지만 결과를 계산할 목적으로 무시됩니다. Quarter (에 대해서도 마찬가지입니다.Q
) 필드.
inTO_TIMESTAMP
andto_date
, ISO 8601 주 기적 날짜 (Gregorian 날짜와는 별도로)는 두 가지 방법 중 하나로 지정할 수 있습니다.
연도, 주 번호 및 주중 : 예를 들어to_date ( '2006-42-4', 'iyyy-iw-id')
날짜를 반환2006-10-19
. 평일을 생략하면 1 (월요일)으로 간주됩니다.
연도 및 연도 : 예를 들어to_date ( '2006-291', 'iyyy-iddd')
또한 반환2006-10-19
.
ISO 8601 주 기적 필드와 Gregorian Date Fields의 혼합물을 사용하여 날짜를 입력하려고 시도하는 것은 무의미하며 오류가 발생합니다. ISO 8601 주 기적 연도의 맥락에서 A의 개념.“Month”또는“매월”의미가 없습니다. Gregorian 년의 맥락에서 ISO 주간에는 의미가 없습니다.
whileto_date
Gregorian과 ISO 주간 기업일 필드의 혼합물을 거부합니다.to_char
와 같은 출력 형식 사양이므로.yyyy-mm-dd (iyyy-iddd)
유용 할 수 있습니다. 하지만와 같은 글을 쓰지 마십시오.iyyy-mm-dd
; 그것은 연초에 놀라운 결과를 얻을 것입니다. (보다섹션 9.9.1자세한 내용은
inTO_TIMESTAMP
, 밀리 초 (MS
) 또는 마이크로 초 (US
) 필드는 소수점 이후 초 숫자로 사용됩니다. 예를 들어TO_TIMESTAMP ('12 .3 ','ss.ms ')
는 변환이 12 + 0.3 초로 취급되기 때문에 3 밀리 초가 아니라 300입니다. 그래서 형식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')
의 주간의 날 번호는 일치합니다.Extract (Isodow에서 ...)
기능이지만to_char (..., 'd')
s는 일치하지 않습니다Extract (Dow from ...)
의 날 번호.
TO_CHAR (Interval)
형식HH
및HH12
12 시간 시계에 표시된대로 제로 시간 및 36 시간 모두 출력12
, whileHH24
전체 시간 값을 출력하며, 이는 23을 초과 할 수 있습니다간격
value.
표 9.29숫자 값을 형식화하는 데 사용할 수있는 템플릿 패턴을 보여줍니다.
표 9.29. 숫자 서식을위한 템플릿 패턴
패턴 | 설명 |
---|---|
9 |
숫자 위치 (무의미한 경우 삭제 가능) |
0 |
숫자 위치 (무의미한 경우에도 삭제되지 않음) |
. (기간) |
소수점 |
, (쉼표) |
그룹 (수천) 분리기 |
PR |
각도 괄호의 음수 값 |
S |
숫자에 고정 된 사인 (로케일 사용) |
l |
통화 기호 (로케일 사용) |
d |
소수점 (로케일 사용) |
g |
그룹 분리기 (로케일 사용) |
mi |
지정된 위치 (숫자 <0 인 경우) |
pl |
지정된 위치 (숫자 0 인 경우) |
SG |
plus/minus sign in speignified position |
RN |
로마 숫자 (1과 3999 사이의 입력) |
th 또는th |
서수 접미사 |
V |
지정된 숫자 숫자 수 (참고 참조) |
eeee |
과학 표기법을위한 지수 |
숫자 형식에 대한 사용 메모 :
0
선행/후행 제로가 포함되어 있어도 항상 인쇄 될 숫자 위치를 지정합니다.9
또한 숫자 위치를 지정하지만, 리드 0이면 공간으로 대체되며, 후행 0이고 채우기 모드가 지정되면 삭제됩니다. (을 위한to_number ()
,이 두 패턴 문자는 동일합니다.)
형식이 형식화되는 숫자보다 더 적은 부분 숫자를 제공하는 경우to_char ()
지정된 분수 숫자 수로 숫자를 반올림합니다.
패턴 문자S
, l
, d
및g
현재 로케일에 의해 정의 된 부호, 통화 기호, 소수점 및 수천 개의 분리기 문자를 나타냅니다 (참조lc_monetary및lc_numeric). 패턴 문자 기간과 쉼표는 로케일에 관계없이 소수점과 수천 개의 분리기의 의미와 함께 정확한 문자를 나타냅니다.
로그인에 대한 명시 적 조항이없는 경우to_char ()
'패턴, 하나의 열이 표시에 예약되어 있으며 숫자 바로 왼쪽에 고정됩니다. 만약에S
일부 왼쪽으로 나타납니다9
's, 마찬가지로 숫자에 고정됩니다.
사용 서명SG
, pl
또는mi
는 숫자에 고정되어 있지 않습니다. 예를 들어,TO_CHAR (-12, 'MI9999')
생산'-12'
그러나TO_CHAR (-12, 'S9999')
생산' -12 '
. (Oracle 구현은의 사용을 허용하지 않습니다.MI
전9
하지만 오히려9
precedeMI
.)
th
값은 0보다 적은 값을 변환하지 않으며 분수 숫자를 변환하지 않습니다.
pl
, SG
및th
arePostgreSQL확장.
into_number
, 비 데이터 템플릿 패턴 인 경우l
또는th
사용됩니다. 데이터 문자 (즉, 숫자, 부호, 소수점 또는 쉼표)가 아닌 한 템플릿 패턴과 일치하는지 여부에 관계없이 해당 입력 문자 수가 건너 뜁니다. 예를 들어,th
두 개의 비 데이터 토토 사이트를 건너 뛸 것입니다.
V
withto_char
입력 값을 곱하기10^
, 여기서n
n
다음 자리 수는입니다.V
. V
withto_number
비슷한 방식으로 분열.to_char
및to_number
사용을 지원하지 마십시오V
소수점과 결합 (예 :99.9V99
허용되지 않음).
eeee
(과학 표기법)는 숫자 및 소수점 패턴 이외의 다른 형식 패턴 또는 수정 자와 함께 사용할 수 없으며 형식 문자열의 끝에 있어야합니다 (예 :9.99eee
유효한 패턴).
특정 수정자는 모든 템플릿 패턴에 적용하여 동작을 변경할 수 있습니다. 예를 들어,FM99.99
99.99
패턴FM
수정 자.표 9.30숫자 형식의 수정 자 패턴을 보여줍니다.
표 9.30. 숫자 서식을위한 템플릿 패턴 수정 자
수정 자 | 설명 | example |
---|---|---|
FM 접두사 |
채우기 모드 (후행 제로 및 패딩 블랭크 억제) | FM99.99 |
th 접미사 |
어퍼 케이스 서수 접미사 | 999th |
th 접미사 |
소문자 서수 접미사 | 999th |
표 9.31사용의 몇 가지 예를 보여줍니다TO_CHAR
함수.
표 9.31. TO_CHAR
예제
표현 | 결과 |
---|---|
to_char (current_timestamp, 'day, dd hh12 : mi : ss') |
'화요일, 06 05:39:18' |
to_char (current_timestamp, 'fmday, fmdd hh12 : mi : ss') |
'화요일, 6 05:39:18' |
TO_CHAR (Time Zone 'UTC', 'yyyy-mm-dd "t"hh24 : mi : ss "z"') |
'2022-12-06T05 : 39 : 18Z' , ISO8601 확장 형식 |
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, '999th') |
' 482nd ' |
to_char (485, ' "좋은 숫자 :"999') |
'좋은 번호 : 485' |
TO_CHAR (485.8, ' "PRE :"999 "POST :".999') |
'pre : 485 게시물 : .800' |
TO_CHAR (12, '99V999') |
' 12000 ' |
TO_CHAR (12.4, '99V999') |
' 12400 ' |
to_char (12.45, '99v9') |
' 125 ' |
to_char (0.0004859, '9.99eee') |
' 4.86E-04 ' |
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면