이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

9.8. 데이터 유형 스포츠 토토 스포츠 토토 기능

thepostgresql서식 함수는 다양한 데이터 유형 (날짜/시간, 정수, 플로팅 포인트, 숫자)을 스포츠 토토으로 변환하고 스포츠 토토화 된 문자열에서 특정 데이터 유형으로 변환하기위한 강력한 도구 세트를 제공합니다.표 9.24나열됩니다. 이러한 기능은 모두 공통 통화 규칙을 따릅니다. 첫 번째 인수는 스포츠 토토화 할 값이며 두 번째 인수는 출력 또는 입력 스포츠 토토을 정의하는 템플릿입니다..

표 9.24. 함수 서식

기능 반환 유형 설명 example
to_char (타임 스탬프, 텍스트) 텍스트 타임 스탬프를 문자열로 변환 to_char (current_timestamp, '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 :: Real, '999d9')
to_char (숫자, 텍스트) 텍스트 숫자를 문자열로 변환 TO_CHAR (-125.8, '999D99S')
to_date (텍스트, 텍스트) 날짜 날짜로 문자열 변환 To_date ('05 12 월 2000 ','dd mon yyyy ')
to_number (텍스트, 텍스트) 숫자 문자열을 숫자로 변환 TO_NUMBER ('12, 454.8- ','99G999D9S ')
TO_TIMESTAMP (텍스트, 텍스트) 시간대가있는 타임 스탬프 스트링을 타임 스탬프로 변환 TO_TIMESTAMP ('05 DEC 2000 ','DD MON YYYY ')

Note

단일 반응도 있습니다TO_TIMESTAMP함수; 보다표 9.31.

TO_TIMESTAMPandto_date간단한 캐스팅으로 변환 할 수없는 입력 스포츠 토토을 처리하기 위해 존재합니다. 대부분의 표준 날짜/시간 스포츠 토토의 경우 소스 문자열을 필요한 데이터 유형 작업에 시전하면 훨씬 쉽습니다.to_number표준 숫자 표현의 경우 불필요합니다.

atTO_CHAR출력 템플릿 문자열에는 주어진 값을 기반으로 적절한 스포츠 토토의 데이터로 인식되고 대체되는 특정 패턴이 있습니다. 템플릿 패턴이 아닌 텍스트는 단순히 구두로 복사됩니다.

표 9.25날짜 및 시간 값을 스포츠 토토화하는 데 사용할 수있는 템플릿 패턴을 표시합니다.

표 9.25. 날짜/시간 서식을위한 템플릿 패턴

패턴 설명
HH 시간의 시간 (01-12)
HH12 시간의 시간 (01-12)
HH24 시간의 시간 (00-23)
mi 분 (00-59)
SS Second (00-59)
MS 밀리 초 (000-999)
US 마이크로 초 (000000-99999)
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의 마지막 2 자리 8601 주 기적 연도
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 주 기적 연도 (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 일 이후의 정수 일; 참조섹션 B.7)
Q 쿼터
rm 대문자 로마 숫자의 달 (i-xii; i = 1 월)
rm 소문자 로마 숫자 (i-xii; i = 1 월)
TZ 대문자 시간-구역 약어 (replusedTO_CHAR)
TZ 소문자 시간 구역 약어 (rebustedTO_CHAR)
TZH 시간대 시간
TZM 시간대 분
of UTC에서 시간대 오프셋 (지원되는TO_CHAR)

수정자는 모든 템플릿 패턴에 적용하여 동작을 변경할 수 있습니다. 예를 들어,fmmonthMonthFMModifier.표 9.26날짜/시간 스포츠 토토의 수정 자 패턴을 보여줍니다.

표 9.26. 날짜/시간 서식을위한 템플릿 패턴 수정 자

수정 자 설명 example
FMprefix 채우기 모드 (선행 제로 및 패딩 블랭크 억제) fmmonth
th접미사 어퍼 케이스 서수 접미사 ddth, 예 :12th
th접미사 소문자 서수 접미사 ddth, 예 :12th
fxprefix 고정 스포츠 토토 글로벌 옵션 (사용 메모 참조) FX Month DD Day
TMprefix 번역 모드 (현지일 및 월 이름 인쇄LC_TIME) tmmonth
SP접미사 주문 모드 (구현되지 않음) DDSP

날짜/시간 스포츠 토토에 대한 사용 메모 :

  • FM패턴의 출력을 고정 된 범위로 만들기 위해 추가 된 주요 0 및 후행 블랭크를 억제합니다. 안에postgresql, FMOracle에서 다음 사양 만 수정합니다FM모든 후속 사양에 영향을 미치고 반복FM수정자는 채우기 모드를 켜고 끄는 모드를 전환합니다.

  • TM후행 블랭크를 포함하지 않습니다.TO_TIMESTAMPandto_date무시TMModifier.

  • TO_TIMESTAMPandto_date입력 문자열의 시작 부분에서 그리고 날짜 및 시간 값 주변에서 여러 빈 공간을 건너 뜁니다.fx옵션이 사용됩니다. 예를 들어,TO_TIMESTAMP ( '2000 Jun', 'yyyy mon')andTO_TIMESTAMP ( '2000 -Jun', 'yyyy -mon')작업하지만to_timestamp ( '2000 Jun', 'fxyyyy mon')오류를 반환하기 때문에TO_TIMESTAMP단일 공간 만 기대합니다.fx템플릿의 첫 번째 항목으로 지정해야합니다.

  • 템플릿 문자열의 분리기 (공간 또는 비 독립기/비가 자릿수 문자)TO_TIMESTAMPandto_date입력 문자열의 단일 분리기와 일치하거나을 건너 뜁니다.fx옵션이 사용됩니다. 예를 들어,to_timestamp ( '2000jun', 'yyyy /// mon')andTO_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입력 문자열에서.

  • A TZH템플릿 패턴은 서명 된 번호와 일치 할 수 있습니다. 없이fx옵션, 마이너스 표시는 모호 할 수 있으며 분리기로 해석 될 수 있습니다. 이 모호성은 다음과 같이 해결됩니다. 이전 분리기의 수는TZH템플릿 문자열에서 입력 문자열의 마이너스 부호가 전하기 전에 분리기 수보다 작습니다. 마이너스 부호는의 일부로 해석됩니다.TZH. 그렇지 않으면 마이너스 부호는 값 간의 분리기로 간주됩니다.to_timestamp ( '2000-10', 'yyyy tzh')매치-10toTZH그러나to_timestamp ( '2000-10', 'yyyy tzh')매치10toTZH.

  • 일반 텍스트가 허용됩니다TO_CHAR템플릿 및 문자 그대로 출력됩니다. 템플릿 패턴이 포함되어 있어도 문자 그대로 해석되도록 하위 문자열을 이중 따옴표로 넣을 수 있습니다.' "Hello Year"yyyy', Theyyyy연도 데이터로 대체되지만 단일Yinyear안에to_date, to_numberTO_TIMESTAMP, 문자 그럴 텍스트와 이중 인용 문자열은 문자열에 포함 된 문자 수를 건너 뜁니다. 예를 들어"xx"두 개의 입력 문자를 건너 뛰십시오 (xx).

    이전postgresql12, 비 레터 또는 비 디지털 문자를 사용하여 입력 문자열에서 임의의 텍스트를 건너 뛸 수있었습니다. 예를 들어,to_timestamp ( '2000y6m1d', 'yyyy-mm-dd')작동하는 데 사용되었습니다. 이제이 목적으로 만 문자를 사용할 수 있습니다.TO_TIMESTAMP ( '2000Y6M1D', 'yyytmmtddt')andto_timestamp ( '2000y6m1d', 'yyyy "y"mm "m"dd "d"')skipy, md.

  • 출력에 이중 견적을 원한다면 백 슬래시와 앞에 있어야합니다'\ "yyyy month \"'. 백 슬래시는 그렇지 않으면 두 배의 줄기 외부에서 특별하지 않습니다.

  • inTO_TIMESTAMPandto_date, 연도 스포츠 토토 사양이 4 자리 미만인 경우 (예 :yyy, 공급 된 연도는 4 자리 미만이며, 연도는 2020 년에 가장 가까운 것으로 조정됩니다 (예 :951995 년이됩니다.

  • inTO_TIMESTAMPandto_date, 부정적인 해는 BC를 의미하는 것으로 취급됩니다. 부정적인 해와 명시 적으로 글을 쓰면BC필드, 당신은 다시 광고를 얻습니다. 제로의 입력은 기원전 1으로 취급됩니다.

  • inTO_TIMESTAMPandto_date, Theyyyy변환은 4 자리 이상으로 연도를 처리 할 때 제한이 있습니다. 이후에 숫자가 아닌 문자 또는 템플릿을 사용해야합니다.yyyy, 그렇지 않으면 연도는 항상 4 자리로 해석됩니다. 예를 들어 (20000 년과 함께) :to_date ( '200001130', 'yyyymmdd')4 자리로 해석됩니다. 대신와 같이 연중 이후에 비수분 분리기를 사용하십시오to_date ( '20000-1130', 'yyyy-mmdd')또는TO_DATE ( '20000NOV30', 'yyyymondd').

  • inTO_TIMESTAMPandto_date, TheCC(Century) 필드는 받아 들여지지 만 A가 있으면 무시됩니다yyy, yyyy또는y, yyy필드. 만약에CCyy또는Y그러면 결과는 지정된 세기의 해당 연도와 같이 계산됩니다. 세기가 명시되어 있지만 해가 그렇지 않다면, 세기의 첫해는 가정됩니다.

  • inTO_TIMESTAMPandto_date, 주중 이름 또는 숫자 (day, D및 관련 필드 유형)은 허용되지만 결과를 계산할 목적으로 무시됩니다. Quarter (에 대해서도 마찬가지입니다.Q) 필드.

  • inTO_TIMESTAMPandto_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_dateGregorian과 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, 입력 값12.3, 12.3012.300동일한 수의 밀리 초를 지정하십시오. 3 밀리 초를 얻으려면 하나가 쓸 필요가 있습니다12.00334272_34333

    여기 더 복잡한 예가 있습니다 :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)스포츠 토토HHandHH1212 시간 시계에 표시된대로, 예를 들어 제로 시간 및 36 시간 모두 출력으로12whileHH24전체 시간 값을 출력하며, 이는 23을 초과 할 수 있습니다간격value.

표 9.27숫자 값을 스포츠 토토화하는 데 사용할 수있는 템플릿 패턴을 보여줍니다.

표 9.27. 숫자 서식을위한 템플릿 패턴

패턴 설명
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, DG현재 로케일에 의해 정의 된 부호, 통화 기호, 소수점 및 수천 개의 분리기 문자를 나타냅니다 (참조lc_monetaryandlc_numeric). 패턴 문자 기간과 쉼표는 로케일에 관계없이 소수점과 수천 개의 분리기의 의미와 함께 정확한 문자를 나타냅니다.

  • 서명에 대한 명시 적 조항이없는 경우to_char ()의 패턴, 하나의 열은 표시를 위해 예약되며 숫자가 왼쪽으로 표시됩니다. 만약에S일부 왼쪽으로 나타납니다9's, 마찬가지로 숫자에 고정됩니다.

  • |SG, pl또는mi예를 들어,TO_CHAR (-12, 'MI9999')생산'-12'하지만TO_CHAR (-12, 'S9999')생산'  -12 '. (Oracle 구현은의 사용을 허용하지 않습니다.mi9그러나 오히려9precedemi.)

  • th값은 0보다 적은 값을 변환하지 않으며 분수 숫자를 변환하지 않습니다.

  • pl, SGtharepostgresql확장.

  • into_number, 비 데이터 템플릿 패턴 인 경우L또는th사용됩니다. 해당 입력 문자 수는 데이터 문자 (즉, 숫자, 부호, 소수점 또는 쉼표가 아닌 한 템플릿 패턴과 일치하는지 여부에 관계없이 건너 뜁니다. 예를 들어,th두 개의 비 데이터 문자를 건너 뛸 것입니다.

  • VwithTO_CHAR입력 값을 곱하기10^n, 여기서n다음 자릿수 수입니다V. Vwithto_number비슷한 방식으로 나눕니다.TO_CHARandto_number사용을 지원하지 마십시오V소수점과 결합 (예 :99.9V99허용되지 않음).

  • eeee(과학 표기법)는 숫자 및 소수점 패턴 이외의 다른 스포츠 토토 패턴 또는 수정 자와 함께 사용할 수 없으며 스포츠 토토 문자열의 끝에 있어야합니다 (예 :9.99eee유효한 패턴).

특정 수정자는 모든 템플릿 패턴에 적용하여 동작을 변경할 수 있습니다. 예를 들어,FM99.9999.99FMModifier.표 9.28숫자 스포츠 토토의 수정 자 패턴을 보여줍니다.

표 9.28. 숫자 서식을위한 템플릿 패턴 수정 자

수정 자 설명 example
FMprefix 채우기 모드 (후행 제로 및 패딩 블랭드 억제) FM99.99
th접미사 어퍼 케이스 서수 접미사 999th
th접미사 소문자 서수 접미사 999th

표 9.29사용의 일부 예를 보여줍니다TO_CHAR함수.

표 9.29. 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 (-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 '