이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 9.8. 데이터 유형 토토 결과 토토 결과 기능버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

9.8. 토토 결과 유형 형식 기능

포스트그레SQL포맷중 토토 결과은 다양한 변환을 위한 강력한 도구 세트를 제공합니다. 데이터 유형(날짜/시간, 정수, 부동 소수점, 숫자) 토토 결과화된 문자열 및 토토 결과화된 문자열을 다음으로 변환하는 데 사용됩니다. 특정 데이터 유형.테이블 9-21나열합니다. 이러한 함수는 모두 공통 호출을 따릅니다. 규칙: 첫 번째 인수는 토토 결과을 지정할 값이고 두 번째 인수는 출력을 정의하는 템플릿입니다. 입력 토토 결과입니다.

단일 인수to_timestamp함수도 사용할 수 있습니다. 그것은 받아들인다더블 정도인수 및 Unix epoch(초)에서 변환 1970년 1월 1일 00:00:00+00)부터타임스탬프 포함 시간대. (정수유닉스 시대는 암시적으로 캐스팅됨배정밀도.)

표 9-21. 서식 토토 결과

토토 결과 반환 토토 결과 설명
to_char(타임스탬프, 텍스트) 텍스트 타임스탬프를 문자열로 변환 to_char(현재_타임스탬프, 'HH12:MI:SS')
to_char(간격, 텍스트) 텍스트 간격을 문자열로 변환 to_char(간격 '15시 2분 12초', '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_number(텍스트, 텍스트) 숫자 문자열을 숫자로 변환 to_number('12,454.8-', '99G999D9S')
to_timestamp(텍스트, 텍스트) 시간대가 포함된 타임스탬프 문자열을 타임스탬프로 변환 to_timestamp('2000년 12월 5일', 'DD 월요일 YYYY')
to_timestamp(더블 정도) 시간대가 포함된 타임스탬프 Unix 에포크를 타임스탬프로 변환 to_timestamp(1284352323)

to_char출력 템플릿 문자열에는 인식되는 특정 패턴이 있으며 주어진 데이터를 기반으로 적절한 토토 결과의 데이터로 대체됩니다. 값. 템플릿 패턴이 아닌 텍스트는 모두 복사됩니다. 말 그대로. 마찬가지로 입력 템플릿 문자열(다른 템플릿의 경우) 함수), 템플릿 패턴은 제공될 값을 식별합니다. 입력 데이터 문자열로.

테이블 9-22토토 결과 지정에 사용할 수 있는 템플릿 패턴을 표시합니다. 날짜 및 시간 값입니다.

표 9-22. 날짜/시간에 대한 템플릿 패턴 서식

패턴 설명
흐흐 시간(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.또는a.d. 연대 표시(마침표 포함)
전체 대문자 월 이름(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일 이후 일수) 자정)
Q 분기(무시됨to_date그리고to_timestamp)
RM 월은 대문자 로마 숫자(I-XII; 나=1월)
rm 월은 소문자 로마 숫자(i-xii; i=1월)
TZ 대문자 시간대 이름
tz 소문자 시간대 이름

수정자는 모든 템플릿 패턴에 적용되어 템플릿 패턴을 변경할 수 있습니다. 행동. 예를 들어,FM월이것은패턴이 있는FM수정자.표 9-23날짜/시간에 대한 수정자 패턴을 표시합니다. 서식을 지정합니다.

표 9-23. 다음에 대한 템플릿 패턴 수정자 날짜/시간 토토 결과

수정자 설명
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여러 개의 공백 건너뛰기 가 아닌 한 입력 문자열에 공백이 있어야 합니다.FX옵션이 사용됩니다. 예를 들어,to_timestamp('2000    6월', 'YYYY 월')작동하지만to_timestamp('2000    6월', 'FXYYYY 월')오류를 반환하는 이유는to_timestamp한 칸만 필요합니다.FX첫 번째로 지정되어야 합니다. 템플릿의 항목입니다.

  • 일반 텍스트가 허용됩니다.to_char템플릿을 사용하여 출력됩니다. 문자 그대로. 하위 문자열을 큰따옴표로 묶어서 강제로 적용할 수 있습니다. 포함되어 있더라도 리터럴 텍스트로 해석됩니다. 패턴 키워드. 예를 들어,'"안녕하세요 년 "YYYY', 그YYYY연도 토토 결과로 대체되지만, 싱글Yin연도그렇지 않을 것입니다. 안에to_date, to_numberto_timestamp, 큰따옴표로 묶인 문자열 건너뛰기 문자열에 포함된 입력 문자 수, 예:"XX"두 개의 입력 문자를 건너뜁니다.

  • 출력에 큰따옴표를 포함하려면 다음을 수행해야 합니다. 예를 들어 백슬래시를 앞에 붙입니다.'\"YYYY월\"'.

  • YYYY문자열로부터의 변환 에게타임스탬프또는날짜연도를 처리할 때 제한이 있습니다. 4자리 이상. 숫자가 아닌 문자를 사용해야 합니다. 이후 템플릿YYYY, 그렇지 않으면 연도는 항상 4자리 숫자로 해석됩니다. 예를 들어 ( 20000년):to_date('200001131', 'YYYYMMDD')4자리 연도로 해석됩니다. 대신 연도 뒤에 숫자가 아닌 구분 기호를 사용하세요.to_date('20000-1131', 'YYYY-MMDD')또는to_date('20000Nov31', 'YYYYMonDD').

  • 문자열에서 다음으로 변환 시타임스탬프또는날짜, 그CC(세기) 필드는 다음과 같은 경우 무시됩니다. 거기에YYY, YYYY또는Y,YYY필드. 만약에CC다음과 함께 사용됩니다YY또는Y그다음 연도 다음과 같이 계산됩니다.(CC-1)*100+YY.

  • ISO 8601 주 번호 지정 날짜( 그레고리력 날짜)는 다음과 같이 지정할 수 있습니다.to_timestamp그리고to_date두 가지 방법 중 하나로:

    • 연도, 주, 요일: 예를 들어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자세한 내용은.)

  • 문자열에서 다음으로 변환 중타임스탬프, 밀리초(MS) 또는 마이크로초(미국) 값은 초 자리로 사용됩니다. 소수점 이하. 예를 들어to_timestamp('12:3', 'SS:MS')3이 아닙니다 밀리초이지만 변환에서는 12로 계산되므로 300입니다. + 0.3초. 이는 토토 결과을 의미합니다.SS:MS, 입력 값12:3, 12:3012: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초.

  • to_char(..., 'ID')의 날 주 번호가 다음과 일치합니다.추출(isodow ...에서)함수이지만to_char(..., 'D')'s는 그렇지 않습니다 성냥추출(다우...)의 일 번호 매기기.

  • to_char(간격)토토 결과흐흐그리고HH1212시간제로 표시됨, 즉 0시간과 36시간 다음과 같이 출력합니다.12, 동안HH24전체 시간 값을 출력합니다. 간격이 23을 초과합니다.

테이블 9-24토토 결과 지정에 사용할 수 있는 템플릿 패턴을 표시합니다. 숫자 값.

표 9-24. 숫자에 대한 템플릿 패턴 서식

패턴 설명
9 지정된 자릿수의 값
0 앞에 0이 있는 값
.(마침표) 소수점
,(쉼표) 그룹(천) 구분 기호
홍보 꺾쇠 괄호 안의 음수 값
S 번호에 고정된 기호(로케일 사용)
L 통화 기호(로케일 사용)
D 소수점 (로케일 사용)
G 그룹 구분 기호(로케일 사용)
지정된 위치에 빼기 기호(숫자 <인 경우) 0)
PL 지정된 위치에 더하기 기호(숫자 0)
SG 지정된 위치에 더하기/빼기 기호
RN 로마숫자(1~3999 사이에서 입력)
TH또는번째 서수 접미사
V 지정된 자릿수 이동(참고 참조)
EEEE 과학적 표기법의 지수

숫자 토토 결과 지정에 대한 사용 참고사항:

  • 다음을 사용하여 토토 결과화된 기호SG, PL또는은 숫자에 고정되어 있지 않습니다. 예를 들어,to_char(-12, 'MI9999')생산'-  12'그러나to_char(-12, 'S9999')생산'  -12'. 오라클 구현 다음의 사용을 허용하지 않습니다.이전에9, 오히려 그렇게 해야 합니다.9선행.

  • 9결과는 다음과 같은 값입니다. 거기와 같은 자릿수9s. 숫자를 사용할 수 없으면 다음을 출력합니다. 공간.

  • TH값을 더 적게 변환하지 않습니다. 0보다 크고 분수를 변환하지 않습니다.

  • PL, SG, 그리고TH아르포스트그레SQL확장.

  • V효과적으로 값 입력 방법:10^n, 여기서n뒤에 나오는 자릿수입니다V. to_char다음의 사용을 지원하지 않습니다.V소수점과 결합 (예:99.9V99허용되지 않습니다).

  • EEEE(과학적 표기법)은 할 수 없습니다 다른 토토 결과과 조합하여 사용 숫자와 소수점 이외의 패턴이나 수정자 패턴이어야 하며 토토 결과 문자열의 끝에 있어야 합니다(예:9.99EEEE유효한 패턴입니다.)

특정 수정자는 모든 템플릿 패턴에 적용되어 다음을 수행할 수 있습니다. 행동을 바꾸세요. 예를 들어,FM9999이것은9999패턴FM수정자.표 9-25숫자에 대한 수정자 패턴을 표시합니다. 서식을 지정합니다.

표 9-25. 다음에 대한 템플릿 패턴 수정자 숫자 서식

수정자 설명
FM접두사 채우기 모드(선행 0 및 패딩 억제) 공백) FM9999
TH접미사 대문자 서수 접미사 999TH
번째접미사 소문자 서수 접미사 999번째

테이블 9-26사용의 몇 가지 예를 보여줍니다.to_char함수.

표 9-26.to_char

표현 결과
to_char(현재_타임스탬프, '일, DD  HH12:MI:SS') '화요일  , 06  05:39:18'
to_char(현재_타임스탬프, '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, '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, '"이전:"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'