이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 8.5. 날짜/토토 꽁 머니 유형버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

8.5. 날짜/토토 결과 유형

postgresql전체를 지원합니다 세트SQL날짜와 토토 결과 에 표시된 유형표 8-9. 이러한 데이터 유형에서 사용 가능한 작업은에 설명되어 있습니다.PostgreSQL : 문서 : 8.2 : 날짜/토토 사이트 추천 기능 및 연산자.

표 8-9. 날짜/토토 결과 유형

이름 스토리지 크기 설명 낮은 값 높은 가치 해상도
타임 스탬프 [(P)] [토토 결과대가없는 ] 8 바이트 날짜와 토토 결과 모두 4713 BC 5874897 AD 1 마이크로 초 / 14 자리
타임 스탬프 [(P)] with Time Zone 8 바이트 토토 결과대와 토토 결과 영역이있는 날짜와 토토 결과 모두 4713 BC 5874897 AD 1 마이크로 초 / 14 자리
간격 [(P)] 12 바이트 토토 결과 간격 -178000000 년 178000000 년 1 마이크로 초 / 14 자리
날짜 4 바이트 날짜 만 13121_13130 5874897 AD 1 일
토토 결과 [(P)] [토토 결과대가없는 ] 8 바이트 토토 결과의 토토 결과 만 00:00:00 24:00:00 1 마이크로 초 / 14 자리
토토 결과 [(P)] 토토 결과대와 함께 12 바이트 토토 결과대가있는 토토 결과 만 00 : 00 : 00+1459 24:00:00-1459 1 마이크로 초 / 14 자리

참고 :이전PostgreSQL7.3, 쓰기타임 스탬프토토 결과대가있는 타임 스탬프. 이것은 변경되었습니다 SQL 준수.

Time, 타임 스탬프, 그리고간격선택적 정밀도를 수락하십시오 값P초 분야에서 유지되는 분수 숫자 수. 에 의해 기본값은 정밀도에 명시적인 바인딩이 없습니다. 허용 범위P|타임 스탬프and간격타입.

참고 :언제타임 스탬프값 이중 정밀 부동 소수점 번호로 저장됩니다 (현재 기본값), 유효 정밀 한도는 5 월입니다 6 세 미만타임 스탬프값은입니다 2000-01-01 자정 전후에 몇 초로 저장됩니다. 마이크로 초 정밀도는 몇 안에 날짜에 대해 달성됩니다 2000-01-01 년이지만 정밀한 날짜가 저하됩니다 더 멀리. 언제타임 스탬프값은입니다 8 바이트 정수 (컴파일 타임 옵션)로 저장, 마이크로 초 정밀도는 전체 범위에서 사용할 수 있습니다 값. 그러나 8 바이트 정수 타임 스탬프가 더 많이 있습니다 위에 표시된 것보다 제한된 날짜 범위 : BC에서 4713에서 294276 AD. 동일한 컴파일 타임 옵션도 결정합니다 이든Timeand간격값은 부동 소수점 또는 8 바이트 정수. 부동 소수점의 경우 큰간격값은 정밀도로 저하됩니다 간격의 크기가 증가합니다.

Time유형, 허용 범위P는 8 바이트 일 때 0에서 6입니다 정수 스토리지가 사용되거나 떠 다니는 경우 0에서 10까지 스토리지가 사용됩니다.

유형토토 결과대가있는 토토 결과정의됩니다 SQL 표준에 의해, 그러나 정의는 속성을 보여줍니다. 의심스러운 유용성으로 이어집니다. 대부분의 경우의 조합날짜, Time, 토토 결과대가없는 타임 스탬프토토 결과대가있는 타임 스탬프완전한 것을 제공해야합니다 모든 애플리케이션에 필요한 범위/토토 결과 기능.

유형AbstimeandReltime사용되는 정밀도 유형이 낮습니다 내부. 새로운 유형에서 이러한 유형을 사용하지 않아도됩니다 신청서 및 기존의 신청은 언제 적절한. 이러한 내부 유형 중 일부 또는 전부는 사라질 수 있습니다 향후 릴리스에서.

8.5.1. 날짜/토토 결과 입력

날짜 및 토토 결과 입력은 거의 모든 합리적으로 허용됩니다. ISO 8601을 포함한 형식,SQL-컴파일 가능, 전통Postgres및 기타. 일부 형식의 경우 월, 일 및 날짜 입력의 연도 주문은 모호하며 이들의 예상 순서를 지정하는 지원이 있습니다. 전지. 설정Datestyle매개 변수 tomdy선택합니다 월 일년 해석,dmyto 주일 해석을 선택하거나YMD연말 해석을 선택하려면

postgresql더 유연합니다 처리 날짜/토토 결과 입력에서SQL표준 요구 사항. 보다부록 B정확한 구문 분석 날짜/토토 결과 입력 규칙 및 인식 된 텍스트 필드 달, 요일 및 토토 결과대를 포함하여.

날짜 또는 토토 결과 문자 그대로 입력이 필요하다는 것을 기억하십시오. 텍스트 문자열과 같은 단일 따옴표로 둘러싸여 있습니다. 참조섹션 4.1.2.5자세한 내용은SQL다음 구문이 필요합니다

타입[(P)] 'value'

여기서P선택 사항 정밀 사양은 그에 해당하는 정수입니다 초 분야의 분수 숫자 수. 정밀도 에 대해 지정Time, 타임 스탬프간격유형. 허용 값은 위에서 언급되어 있습니다. 정밀도가 없다면 일정한 사양으로 지정되며 기본값은 문자 적 가치의 정밀도.

8.5.1.1. 날짜

테이블 8-10에 대한 가능한 입력을 보여줍니다날짜타입.

표 8-10. 날짜 입력

example 설명
1999 년 1 월 8 일 Datestyle입력 모드
1999-01-08 ISO 8601; 1 월 8 일 모든 모드에서 (권장 체재)
1/8/1999 1 월 8 일mdy모드; 8 월 1 일dmy모드
1/18/1999 1 월 18 일mdy모드; 다른 모드에서 거부
01/02/03 2003 년 1 월 2 일 inmdy모드; 2003 년 2 월 1 일 indmy모드; 2001 년 2 월 3 일 inYMD모드
1999-Jan-08 모든 모드에서 1 월 8 일
1 월 -08-1999 1 월 8 일 모든 모드
08-Jan-1999 1 월 8 일 모든 모드
99-Jan-08 1 월 8 일YMD모드, else error
08-Jan-99 1 월 8 일, 오류를 제외하고YMD모드
1 월 -08-99 1 월 8 일, 오류를 제외하고YMD모드
19990108 ISO 8601; 1999 년 1 월 8 일 모든 모드
990108 ISO 8601; 1999 년 1 월 8 일 모든 모드
1999.008 연도 및 연도
J2451187 Julian Day
BC 99 년 1 월 8 일 일반 시대 전 99 학년

8.5.1.2. 타임스

토토 결과 유형은입니다.토토 결과 [ (P)] 토토 결과대없이and토토 결과 [(P)] 토토 결과대와 함께. 그냥 쓰기TIME토토 결과대가없는 토토 결과.

이러한 유형에 대한 유효한 입력은 하루의 토토 결과으로 구성됩니다. 선택적 토토 결과대가 이어집니다. (보다테이블 8-11and테이블 8-12.) 입력에 토토 결과대가 지정된 경우토토 결과대가없는 토토 결과, 그것은 조용합니다 무시했습니다. 날짜를 지정할 수도 있지만 무시됩니다. 토토 결과대 이름을 사용하는 경우를 제외하고 와 같은 일광 절약 규칙America/New_York. 이 경우를 지정합니다 표준 또는 일광 절약 토토 결과이 적용됩니다. 적절한 토토 결과대 오프셋은에 기록됩니다.토토 결과이 지남에 따라 토토 결과 존value.

표 8-11. 토토 결과 입력

example 설명
04:05:06.789 ISO 8601
04:05:06 ISO 8601
04:05 ISO 8601
040506 ISO 8601
04 : 05 AM 04:05와 동일; AM은 가치에 영향을 미치지 않습니다
04 : 05 PM 16:05와 동일; 입력 토토 결과은 <= 12이어야합니다.
04:05:06.789-8 ISO 8601
04:05:06-08:00 ISO 8601
04:05-08:00 ISO 8601
040506-08 ISO 8601
04 : 05 : 06 PST 약어에 의해 지정된 토토 결과대
2003-04-12 04:05:06 America/New_york 전체 이름으로 지정된 토토 결과대

표 8-12. 토토 결과대 입력

example 설명
PST 약어 (태평양 표준 토토 결과)
America/New_York 풀 타임 존 이름
pst8pdt POSIX 스타일의 토토 결과대 사양
-8:00 ISO-8601 PST에 대한 오프셋
-800 ISO-8601 PST의 오프셋
-8 ISO-8601 PST의 오프셋
Zulu UTC에 대한 군사 약어
Z 짧은 형태의Zulu

참조섹션 8.5.3토토 결과대 지정 방법에 대한 자세한 내용은

8.5.1.3. 타임 스탬프

타임 스탬프 유형에 대한 유효한 입력은 날짜와 토토 결과의 연결, 선택 사항 토토 결과대, 선택 사항이 뒤 따릅니다ad또는BC. (또는ad/BC토토 결과대 앞에 나타날 수는 있지만이 선호하는 주문이 아닙니다.) 따라서

1999-01-08 04:05:06

and

1999-01-08 04:05:06 -8:00

유효한 값이며ISO8601 표준. 또한 광범위한 형식

1 월 8 일 04:05:06 1999 PST

지원됩니다.

theSQL표준 차별화토토 결과이없는 타임 스탬프 존and토토 결과대가있는 타임 스탬프a의 리터럴"+"또는"-". 따라서.에 따르면 기준,

타임 스탬프 '2004-10-19 10:23:54'

is토토 결과대가없는 타임 스탬프, 하는 동안

타임 스탬프 '2004-10-19 10 : 23 : 54+02'

is토토 결과대가있는 타임 스탬프. PostgreSQL절대 조사하지 마십시오 유형을 결정하기 전에 문자 그대로 문자열의 내용 그러므로 위의 두 가지를 모두로 취급 할 것입니다.토토 결과대가없는 타임 스탬프. a 리터럴은로 취급됩니다.토토 결과이 지남에 따라 타임 스탬프 존, 올바른 명시 적 유형을 제공합니다 :

토토 결과대가있는 타임 스탬프 '2004-10-19 10 : 23 : 54+02'

로 결정된 문자 그대로토토 결과대가없는 타임 스탬프, PostgreSQL언제든지 조용히 무시합니다 영역 표시. 즉, 결과 값은 파생됩니다 입력 값의 날짜/토토 결과 필드는 조정되지 않습니다. 토토 결과대를 위해.

for토토 결과대가있는 타임 스탬프, 내부적으로 저장된 값은 항상 UTC에 있습니다 (Universal 전통적으로 그리니치 Lear Time으로 알려진 조정 된 토토 결과,gmt). 입력 값 명시적인 토토 결과대가 지정된 상태에서 UTC로 변환됩니다. 해당 토토 결과대에 적절한 오프셋. 토토 결과대가없는 경우 입력 문자열에 언급 된 다음 시스템에 의해 표시된 토토 결과대TimeZone매개 변수이며의 오프셋을 사용하여 UTC로 변환됩니다.TimeZoneZone.

언제토토 결과대가있는 타임 스탬프값은 출력입니다. 항상 UTC에서 현재의TimeZoneZone 및 표시 그 지역의 현지 토토 결과으로. 다른 토토 결과에 토토 결과을보기 위해 Zone, 어느 중 하나 변경TimeZone또는 사용 그만큼토토 결과대에서구성 (참조섹션 9.9.3).

간의 변환타임 스탬프없이 토토 결과대and토토 결과이 지남에 따라 타임 스탬프 존일반적으로타임 스탬프 토토 결과대없이값을 가져 가거나 주어야합니다타임 존현지 토토 결과. 다른 구역 참조는를 사용하여 변환에 대해 지정할 수 있습니다토토 결과대에서.

8.5.1.4. 간격

간격값은 다음과 같이 작성할 수 있습니다 다음 구문 :

[@]수량 Unit[수량 Unit...] [방향]

여기서 :수량is 번호 (서명 가능);Unitis마이크로 초, millisecond, Second, Minute, Hour, day, , Month, , 10 년, Century, 밀레니엄또는 약어 또는 이 단위의 복수;방향can beAgo또는 빈. AT 부호 (@)는 선택적 노이즈입니다. 다른 양 유닛은 적절한 부호로 암시 적으로 추가됩니다 회계.

일, 토토 결과, 몇 분 및 초의 양이 될 수 있습니다 명시적인 단위 표시없이 지정됩니다. 예를 들어,'1 12:59:10'|'1 일 12 토토 결과 59 분 10 초'.

선택 사항 하위 초 정밀도P0과 6 사이 여야합니다 입력 문자의 정밀도로 기본값.

내부간격값은입니다 몇 달, 며칠 및 초로 저장됩니다. 이것은 이후에 이루어졌습니다 한 달의 일수는 다양하며 하루는 23 또는 25를 가질 수 있습니다. 일광 절약 토토 결과 조정이 관련된 경우 토토 결과. 간격은 일반적으로 일정한 문자열에서 생성되기 때문입니다 또는타임 스탬프뺄셈,이 스토리지 방법은 대부분의 경우 잘 작동합니다. 기능Justify_DaysJustify_hours조정할 수 있습니다 평범한 기간을 넘어서는 날과 토토 결과.

8.5.1.5. 특별 값

PostgreSQL지원 편의를위한 몇 가지 특별 날짜/토토 결과 입력 값 표시테이블 8-13. 값Infinityand-infinity특별히 대표됩니다 시스템 내부에 동일한 방식으로 표시됩니다. 그러나 다른 사람들은 단순히 표현할 수있는 속기입니다 읽을 때 일반 날짜/토토 결과 값으로 변환됩니다. (안에 특정한,지금및 관련 문자열 즉시 특정 토토 결과 값으로 변환됩니다. 읽기.)이 모든 값은 단일로 작성해야합니다. SQL 명령에서 상수로 사용될 때의 따옴표

표 8-13. 특별 날짜/토토 결과 입력

입력 문자열 유효한 유형 설명
epoch 날짜, 타임 스탬프 1970-01-01 00 : 00 : 00+00 (UNIX 시스템 토토 결과 영)
Infinity 타임 스탬프 다른 모든 타임 스탬프보다 늦게
-infinity 타임 스탬프 다른 모든 타임 스탬프보다 일찍
now 날짜, Time, 타임 스탬프 현재 트랜잭션의 시작 토토 결과
오늘 날짜, 타임 스탬프 오늘 자정
내일 날짜, 타임 스탬프 내일 자정
어제 날짜, 타임 스탬프 어제 자정
Allballs Time 00 : 00 : 00.00 UTC

다음SQL-컴파일 가능한 함수도 사용할 수 있습니다 해당 데이터의 현재 토토 결과 값을 얻으려면 유형:current_date, current_time, current_timestamp, 로컬 타임, LocalTimestamp. 후자 4 명은 선택적 하위 세포 정밀 사양. (보다섹션 9.9.4.) 그러나 이것들은 SQL 함수이며not데이터 입력 문자열.

8.5.2. 날짜/토토 결과 산출

날짜/토토 결과 유형의 출력 형식은 하나로 설정할 수 있습니다. 네 가지 스타일 중 ISO 8601,SQL(Ingres), 전통적인 우편둥이 및 독일어, 명령 사용세트 Datestyle. 기본값은입니다.ISO형식. (그만큼SQL표준에는 ISO를 사용해야합니다 8601 형식. 의 이름"SQL"출력 형식은 역사적 사고입니다.)테이블 8-14각 출력 스타일의 예를 보여줍니다. 의 출력날짜Time유형 물론 날짜 또는 토토 결과 부분에 따라 주어진 예.

표 8-14. 날짜/토토 결과 출력 스타일

스타일 사양 설명 example
ISO ISO 8601/SQL 표준 1997-12-17 07:37:16-08
SQL 전통적인 스타일 12/17/1997 07 : 37 : 16.00 PST
Postgres 원본 스타일 wed 12 월 17 일 07:37:16 1997 PST
독일어 지역 스타일 17.12.1997 07 : 37 : 16.00 PST

inSQL및 Postgres 스타일, DMY 필드 주문이 있었다면 월 전 날 나타납니다. 지정, 그렇지 않으면 월이 하루 전에 나타납니다. (보다섹션 8.5.1이 설정이 해석에 어떤 영향을 미치는지 입력 값.)테이블 8-15예를 보여줍니다.

표 8-15. 날짜 명령 규칙

Datestyle설정 입력 순서 출력 예
SQL, DMY day/Month/Year 17/12/1997 15 : 37 : 16.00 CET
SQL, MDY Month/day/Year 12/17/1997 07 : 37 : 16.00 PST
Postgres, dmy day/Month/Year wed 17 Dec 07:37:16 1997 PST

간격출력은 입력처럼 보입니다 와 같은 단위를 제외하고 형식Century또는는 몇 년으로 변환되었습니다 날과AGO적절한 표시. ISO 모드에서 출력은

[ 수량 Unit[ ... ]] [ days ] [ 토토 결과:mings: ]

날짜/토토 결과 스타일은 사용자가 선택할 수 있습니다.데이터 스타일 설정명령,Datestyle매개 변수postgresql.conf구성 파일 또는pgdatestyle서버 또는 클라이언트의 환경 변수. 서식 기능TO_CHAR(참조섹션 9.8)도 제공됩니다 날짜/토토 결과 출력을 포맷하는보다 유연한 방법으로.

8.5.3. 토토 결과대

토토 결과대 및 토토 결과 구역 규칙은 영향을받습니다 지구 기하학뿐만 아니라 정치적 결정. 주변의 토토 결과대 세계는 1900 년대에 다소 표준화되었다 특히 임의의 변화가 발생하기 쉽습니다 일광 절약 규칙에 대한 존중.PostgreSQL현재 지원됩니다 일광 절약 규칙은 1902 년에서 2038 년까지 규칙입니다 (전체 범위의 기존 유닉스 시스템에 해당합니다 토토 결과). 그 범위를 벗어난 토토 결과은"표준 토토 결과"선택한 토토 결과대의 경우 no 그들이 일년 중 어느 부분에 빠지는 지 중요합니다.

PostgreSQL노력 와 호환SQL일반적인 사용에 대한 표준 정의. 그러나SQL표준에는 홀수 믹스가 있습니다 날짜 및 토토 결과 유형 및 기능. 두 가지 명백한 문제 이다:

  • 비록날짜타입은 그렇지 않습니다 관련 토토 결과대가 있습니다.Time타입 캔. 현실 세계의 토토 결과대 날짜와 관련이없는 한 의미가 거의 없습니다. 오프셋이 연중 달라질 수 있기 때문에 일광 절약 토토 결과 경계.

  • 기본 토토 결과대는 상수 숫자로 지정됩니다. 에서 상쇄UTC. 그것은 따라서 일광 절약 토토 결과에 적응할 수 없습니다 날짜/토토 결과 산술을 수행 할 때DST경계.

이러한 어려움을 해결하려면 날짜/토토 결과을 사용하는 것이 좋습니다 토토 결과대를 사용할 때 날짜와 토토 결과을 모두 포함하는 유형. 우리 추천하다not사용 유형토토 결과대가있는 토토 결과(하지만 지원됩니다PostgreSQL레거시 응용 프로그램 및 준수SQL표준).PostgreSQL현지 토토 결과대를 가정합니다 날짜 또는 토토 결과 만 포함 된 모든 유형의 경우

모든 토토 결과대 인식 날짜와 토토 결과은 내부적으로 저장됩니다UTC. 그들은 변환됩니다 에 지정된 영역의 현지 토토 결과타임 존구성 매개 변수에 표시되기 전에 고객.

PostgreSQL세 가지 형태로 토토 결과 영역을 지정하십시오.

  • 예를 들어 풀 타임 존 이름America/New_York. 인식 된 토토 결과대 이름은에 나열되어 있습니다.PG_TIMEZONE_NAMES보기 (참조섹션 43.49).PostgreSQL널리 사용되는ZIC토토 결과대 데이터 이 목적은 같은 이름도 많이 인식됩니다. 기타 소프트웨어.

  • 예를 들어 토토 결과대 약어PST. 그러한 사양은 단지 a를 정의합니다 풀 타임 존과는 대조적으로 UTC의 특정 상쇄 일광 절약 세트를 암시 할 수있는 이름 전환 날짜 규칙도 있습니다. 인정 된 약어 에 나열되어 있습니다.PG_TIMEZONE_ABBREVS보기 (참조섹션 43.48). 너 구성 매개 변수를 설정할 수 없습니다TimeZone토토 결과대 약어를 사용하지만 사용할 수 있습니다 날짜/토토 결과 입력 값의 약어 및토토 결과대에서연산자.

  • 토토 결과대 이름 및 약어 외에도PostgreSQL수락합니다 양식의 posix 스타일 토토 결과대 지대 사양std오프셋또는std오프셋dst, 여기std구역 약어입니다.오프셋는 숫자 오프셋입니다 UTC에서 서쪽으로 몇 토토 결과 동안DST는 선택적 일광 절약입니다 1 토토 결과 앞에 서 있다고 가정 한 구역 약어 주어진 오프셋. 예를 들어, ifest5edt아직 인정 된 영역이 아닙니다 이름, 그것은 받아 들여질 것이며 기능적입니다 미국 동해안 토토 결과에 해당합니다. 일광 절약 할 때 Zone 이름이 존재하며 다음에 따라 사용되는 것으로 가정합니다. 동일한 일광 절약 전환 규칙에 사용되었습니다ZIC토토 결과대 데이터베이스posixrules입력. 표준PostgreSQL설치,posixrules|US/Eastern토토 결과대 사양은 미국 일광 절약 규칙을 따릅니다. 필요한 경우 대체 하여이 동작을 조정할 수 있습니다.posixrules파일.

약어와 성명 : 항상 약어 UTC에서 고정 된 오프셋을 나타내는 반면 대부분의 전체는 이름은 현지 일광 절약 토토 결과 규칙을 의미하며 두 가지가 있습니다. 가능한 UTC 오프셋.

POSIX 스타일의 토토 결과대 기능이 조심해야합니다. 가짜 입력을 조용히 받아 들일 수 있습니다. 구역 약어의 합리성을 확인하십시오. 을 위한 예,토토 결과대를 foobar0으로 설정의지 시스템을 효과적으로 사용하여 다소 특이한 작업을 수행합니다 UTC에 대한 약어

모든 경우 토토 결과대 이름이 인식됩니다 비면적으로. (이것은의 변화입니다.PostgreSQL8.2 이전의 버전 일부 상황에서는 사례에 민감했으며 다른 상황은 아닙니다.)

성명이나 약어는 두 가지로 연결되지 않습니다 섬기는 사람; 아래에 저장된 구성 파일에서 얻습니다..../share/timezone/.../share/timezonesets/설치 디렉토리 (참조PostgreSQL : 문서 : 8.2 : 날짜/스포츠 토토 사이트 구성 파일).

the타임 존구성 매개 변수를 파일에서 설정할 수 있습니다postgresql.conf또는 다른 것 에 설명 된 표준 방법17 장. 몇 가지도 있습니다 설정하는 특별한 방법 :

  • ifTimeZonepostgresql.conf서버로서 명령 줄 옵션, 서버는 값을 사용하려고 시도합니다 의TZ환경 변수 AS 기본 토토 결과대. 만약에TZ그렇지 않습니다 정의되거나 알려진 토토 결과대 이름이 아닙니다PostgreSQL, 서버 운영 체제의 기본 토토 결과을 결정하려고 시도합니다 C 라이브러리 기능의 동작을 확인하여 영역localtime (). 기본 토토 결과대 중 가장 가까운 경기로 선택됩니다PostgreSQL의 알려진 토토 결과대

  • theSQL명령토토 결과대 설정토토 결과대를 설정합니다 세션을 위해. 이것은의 대체 철자입니다.타임 존 설정더 많은 SQL-Spec 호환 구문.

  • thepgtz환경 변수, if 클라이언트에서 설정하고 사용합니다.libpqa 보낼 응용 프로그램토토 결과대 설정연결시 서버.

8.5.4. 내부

PostgreSQLJulian을 사용합니다 모든 날짜/토토 결과 계산 날짜. 그들은 좋은 것을 가지고 있습니다 날짜를 올바르게 예측/계산하는 속성 기원전 4713 년 이상, 연도의 길이는 365.2425 일이라고 가정합니다.

19 세기 이전의 날짜 규칙 흥미로운 독서이지만 보증하기에 충분히 일관되지 않습니다 날짜/토토 결과 핸들러로 코딩.