이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 8.5. 날짜/토토 꽁 머니 유형버전 또는 위에 나열된 다른 지원 버전 중 하나를 선택하세요.

8.5. 토토 꽁 머니/시간 유형

PostgreSQL전체 지원 세트SQL토토 꽁 머니 및 시간 유형, 다음에 표시됨표 8-9. 이러한 데이터 유형에 사용할 수 있는 작업은에 설명되어 있습니다.PostgreSQL : 문서 : 9.2 : 날짜/사설 토토 기능 및 연산자. 토토 꽁 머니는 몇 년 전에도 그레고리력에 따라 계산되었습니다. 해당 캘린더가 소개되었습니다(참조섹션 B.4더 보기 정보).

표 8-9. 토토 꽁 머니/시간 유형

이름 저장소 크기 설명 낮은 값 높은 가치 해결
타임스탬프 [ (p) ] [ 시간대 없음 ] 8바이트 토토 꽁 머니 및 시간 모두(시간대 없음) 기원전 4713년 서기 294276 1마이크로초/14자리
타임스탬프 [ (p) ] 시간대 포함 8바이트 토토 꽁 머니 및 시간 모두, 시간대 포함 기원전 4713년 서기 294276 1마이크로초/14자리
토토 꽁 머니 4바이트 토토 꽁 머니(시간 없음) 기원전 4713년 5874897 서기 1일
시간 [ (p) ] [ 시간대 없음 ] 8바이트 시간(토토 꽁 머니 없음) 00:00:00 24:00:00 1마이크로초/14자리
시간 [ (p) ] 시간대 포함 12바이트 시간대만, 시간대 포함 00:00:00+1459 24:00:00-1459 1마이크로초/14자리
간격 [필드 ] [ (p) ] 16바이트 시간 간격 -178000000년 178000000년 1마이크로초/14자리

참고:SQL 표준에서는 다음과 같이 작성해야 합니다.타임스탬프다음과 동등함시간대 없는 타임스탬프PostgreSQL그 행동을 존중합니다. (7.3 이전 릴리스에서는 이를 다음과 같이 처리했습니다.시간대가 포함된 타임스탬프.) timestamptz다음의 약어로 허용됩니다.시간대가 포함된 타임스탬프; 이것은PostgreSQL확장.

시간, 타임스탬프, 그리고간격선택적 정밀도 허용 값p다음을 지정합니다. 초 필드에 유지되는 소수 자릿수입니다. 작성자: 기본적으로 정밀도에는 명시적인 제한이 없습니다. 허용된 범위p는 0부터 6까지입니다.타임스탬프그리고간격유형.

참고:언제타임스탬프값 8바이트 정수(현재 기본값)로 저장됩니다. 마이크로초 정밀도는 전체 범위에서 사용할 수 있습니다. 가치. 언제타임스탬프값은 다음과 같습니다 대신 배정밀도 부동 소수점 숫자로 저장됩니다(a 더 이상 사용되지 않는 컴파일 타임 옵션), 유효 제한 정밀도는 6보다 작을 수 있습니다.타임스탬프값은 또는 이전의 초 단위로 저장됩니다. 2000년 1월 1일 자정 이후. 언제타임스탬프값은 다음을 사용하여 구현됩니다. 부동 소수점 숫자, 마이크로초 정밀도가 달성됩니다. 2000-01-01 이후 몇 년 이내의 토토 꽁 머니이지만 정밀도는 더 먼 토토 꽁 머니에는 성능이 저하됩니다. 다음을 사용하여 부동 소수점 토토 꽁 머니/시간은 더 넓은 범위를 허용합니다.타임스탬프표시된 값보다 표시할 값 위: 기원전 4713년부터 서기 5874897년까지.

동일한 컴파일 시간 옵션으로 여부도 결정됩니다.시간그리고간격값은 부동 소수점 숫자 또는 8바이트로 저장됩니다. 정수. 부동 소수점의 경우, 큰간격값은 크기에 따라 정밀도가 저하됩니다. 간격이 증가합니다.

다음을 위해시간유형, 허용 범위p8바이트인 경우 0부터 6까지입니다. 정수 저장이 사용되며, 부동 소수점일 경우 0부터 10까지입니다. 저장용량이 사용됩니다.

간격유형에 추가 항목이 있습니다. 옵션은 다음을 작성하여 저장된 필드 집합을 제한하는 것입니다. 다음 문구 중 하나:

연도
월
요일
HOUR
분
두 번째
매년
매일매일
하루에서 분까지
매일매일
시간에서 분까지
시간에서 초로
분에서 초까지

둘 다인 경우에 주의하세요필드그리고p지정되었습니다.필드반드시 포함두 번째, 정밀도는 다음에만 적용되므로 초.

유형시간대 포함 시간정의됨 SQL 표준에 따라 정의되지만 정의는 다음과 같은 속성을 나타냅니다. 의심스러운 유용성을 초래합니다. 대부분의 경우 다음의 조합은토토 꽁 머니, 시간, 시간대 없는 타임스탬프시간대가 포함된 타임스탬프전체를 제공해야 합니다. 모든 애플리케이션에 필요한 토토 꽁 머니/시간 기능 범위

유형절대그리고상대시간는 정밀도가 낮은 유형으로 사용됩니다. 내부적으로. 이러한 유형을 사용하지 않는 것이 좋습니다. 응용 프로그램; 이러한 내부 유형은 나중에 사라질 수 있습니다 릴리스.

8.5.1. 토토 꽁 머니/시간 입력

토토 꽁 머니 및 시간 입력은 거의 모든 합리적인 방식으로 허용됩니다. ISO 8601을 포함한 형식SQL-호환, 전통포스트그레스및 기타. 일부 형식의 경우 토토 꽁 머니 입력 시 일, 월, 연도 순서가 모호하고 이러한 예상 순서를 지정하는 지원이 있습니다. 필드. 설정토토 꽁 머니 스타일매개변수 ~MDY선택하다 월-일-년 해석,DMY에 일-월-년 해석을 선택하거나YMD연월일 해석을 선택합니다.

포스트그레SQL더 유연해졌습니다. 토토 꽁 머니/시간 입력을 처리할 때SQL표준이 필요합니다. 참조부록 B정확한 분석을 위해 토토 꽁 머니/시간 입력 규칙 및 인식된 텍스트 필드에 대한 규칙 월, 요일, 시간대를 포함합니다.

모든 토토 꽁 머니 또는 시간 리터럴 입력은 다음과 같아야 함을 기억하십시오. 텍스트 문자열처럼 작은따옴표로 묶습니다. 참조섹션 4.1.2.7더 많은 정보를 원하시면.SQL다음 구문이 필요합니다

유형 [ (p) ] ''

어디에서p선택사항입니다. 소수 자릿수를 제공하는 정밀도 사양 초 필드에. 정밀도는 다음과 같이 지정할 수 있습니다.시간, 타임스탬프간격유형. 허용되는 값은 다음과 같습니다. 위에서 언급한. 상수에 정밀도가 지정되지 않은 경우 사양에 따라 기본값은 리터럴의 정밀도입니다. 값.

8.5.1.1. 토토 꽁 머니

테이블 8-10다음에 대한 몇 가지 가능한 입력을 표시합니다.토토 꽁 머니유형.

표 8-10. 토토 꽁 머니 입력

설명
1999-01-08 ISO 8601; 1월 8일 모든 모드에서(권장) 형식)
1999년 1월 8일 어떠한 경우에도 명확함토토 꽁 머니 스타일입력 모드
1/8/1999 1월 8일MDY모드; 8월 1일DMY모드
1/18/1999 1월 18일MDY모드; 다른 모드에서는 거부됨
01/02/03 2003년 1월 2일MDY모드; 2003년 2월 1일DMY모드; 2001년 2월 3일YMD모드
1999년 1월 8일 모든 모드에서 1월 8일
1999년 1월 8일 모든 모드에서 1월 8일
1999년 1월 8일 모든 모드에서 1월 8일
99년 1월 8일 1월 8일YMD모드, 그렇지 않으면 오류
99년 1월 8일 1월 8일, 오류 제외YMD모드
1월 08-99 1월 8일, 오류 제외YMD모드
19990108 ISO 8601; 1999년 1월 8일, 모든 모드에서
990108 ISO 8601; 1999년 1월 8일, 모든 모드에서
1999.008 연도 및 일
J2451187 율리우스 토토 꽁 머니
기원전 99년 1월 8일 기원전 99년

8.5.1.2. 타임즈

시간 유형은 다음과 같습니다.시간 [ (p) ] 시간대 없음그리고시간 [ (p) ] 시간대 포함. 시간혼자서는 다음과 같습니다시간 시간대 없음.

이러한 유형에 대한 유효한 입력은 시간으로 구성됩니다. 그 뒤에 선택적 시간대가 옵니다. (참조테이블 8-11그리고테이블 8-12.) 시간대가 입력에 지정된 경우시간대가 없는 시간조용히 무시되었습니다. 토토 꽁 머니를 지정할 수도 있지만 무시됩니다. 다음과 관련된 시간대 이름을 사용하는 경우는 제외됩니다. 일광 절약 시간제 규칙(예:미국/New_York. 이 경우 표준인지 아닌지를 결정하려면 토토 꽁 머니가 필요합니다. 일광 절약 시간이 적용됩니다. 적절한 시간대 오프셋은에 기록됩니다.시간과 시간 구역값.

표 8-11. 시간 입력

설명
04:05:06.789 ISO 8601
04:05:06 ISO 8601
04:05 ISO 8601
040506 ISO 8601
오전 04:05 04:05와 동일; AM은 가치에 영향을 미치지 않습니다.
오후 4시 5분 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 미국/New_York 성명으로 지정된 시간대

표 8-12. 시간대 입력

설명
PST 약어(태평양 표준시)
미국/New_York 전체 시간대 이름
PST8PDT POSIX 스타일 시간대 지정
-8:00 PST용 ISO-8601 오프셋
-800 PST용 ISO-8601 오프셋
-8 PST용 ISO-8601 오프셋
줄루 UTC의 군사 약어
z 약식줄루

참조섹션 8.5.3시간대 지정 방법에 대한 자세한 내용은.

8.5.1.3. 타임 스탬프

타임 스탬프 유형에 대한 유효한 입력은 다음으로 구성됩니다. 토토 꽁 머니와 시간을 연결하고 그 뒤에 선택사항을 붙임 시간대, 그 뒤에 선택사항AD또는BC. (또는,AD/BC시간대 앞에 나타날 수 있지만 이는 선호하는 순서는 아닙니다.) 따라서:

1999-01-08 04:05:06

그리고:

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

다음의 유효한 값입니다.ISO8601 표준. 또한, 일반적인 형식:

1999년 1월 8일 04:05:06 PST

지원됩니다.

SQL표준 차별화시간이 없는 타임스탬프 구역그리고시간대가 포함된 타임스탬프a의 존재에 의한 리터럴"+"또는"-"기호 및 시간대 오프셋 시간이 지나면. 따라서 표준에 따르면,

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

시간대 없는 타임스탬프, 동안

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

시간대가 포함된 타임스탬프. 포스트그레SQL절대 검사하지 않음 유형을 결정하기 전에 리터럴 문자열의 내용, 따라서 위의 두 가지를 모두 다음과 같이 처리합니다.시간대 없는 타임스탬프. 다음을 보장하려면 리터럴은 다음과 같이 처리됩니다.시간이 포함된 타임스탬프 구역, 올바른 명시적 유형을 지정하세요.

시간대가 '2004-10-19 10:23:54+02'인 타임스탬프

다음으로 결정된 리터럴에서시간대 없는 타임스탬프, 포스트그레SQL언제든지 조용히 무시할 것입니다 구역 표시. 즉, 결과 값은 다음에서 파생됩니다. 입력 값의 토토 꽁 머니/시간 필드이며 조정되지 않습니다. 시간대에 대해.

시간대가 포함된 타임스탬프, 내부적으로 저장된 값은 항상 UTC(Universal 전통적으로 그리니치 표준시로 알려진 협정시GMT). 다음과 같은 입력 값 명시적인 시간대가 지정되어 있는 경우 다음을 사용하여 UTC로 변환됩니다. 해당 시간대에 대한 적절한 오프셋입니다. 시간대가 없는 경우 입력 문자열에 명시된 경우 해당 문자열은 시스템이 나타내는 시간대시간대매개변수이며,에 대한 오프셋을 사용하여 UTC로 변환됩니다.시간대구역.

시간대가 포함된 타임스탬프값이 출력되면 항상 UTC에서 UTC로 변환됩니다. 현재시간대영역 및 표시됨 해당 지역의 현지 시간으로 표시됩니다. 다른 시간의 시간을 보려면 영역, 변경 중 하나시간대또는 사용시간대구조(참조섹션 9.9.3).

전환 사이타임스탬프 없음 시간대그리고시간이 포함된 타임스탬프 구역일반적으로 다음과 같이 가정합니다.타임스탬프 시간대 없음값은 다음과 같이 취하거나 주어져야 합니다.시간대현지 시간. 다른 시간대는 다음을 사용하여 변환을 위해 지정할 수 있습니다.시간대.

8.5.1.4. 특수 값

포스트그레SQL지원 편의를 위한 몇 가지 특수 토토 꽁 머니/시간 입력 값 에 표시됨테이블 8-13. 값무한대그리고-무한대특별히 표시됩니다 시스템 내부에서는 변경되지 않은 상태로 표시됩니다. 하지만 다른 것들은 단순히 표기상의 약어입니다. 읽을 때 일반 토토 꽁 머니/시간 값으로 변환됩니다. (에서 특별한,지금및 관련 문자열 즉시 특정 시간 값으로 변환됩니다. 읽기.) 이 값은 모두 단일로 묶어야 합니다. SQL 명령에서 상수로 사용될 때는 따옴표를 사용합니다.

표 8-13. 특수 토토 꽁 머니/시간 입력

입력 문자열 유효한 유형 설명
에포크 토토 꽁 머니, 타임스탬프 1970-01-01 00:00:00+00 (유닉스 시스템 시간 제로)
무한대 토토 꽁 머니, 타임스탬프 다른 모든 타임스탬프보다 늦음
-무한대 토토 꽁 머니, 타임스탬프 다른 모든 타임스탬프보다 빠름
지금 토토 꽁 머니, 시간, 타임스탬프 현재 거래 시작 시간
오늘 토토 꽁 머니, 타임스탬프 오늘 자정
내일 토토 꽁 머니, 타임스탬프 내일 자정
어제 토토 꽁 머니, 타임스탬프 어제 자정
모든 공 시간 00:00:00.00 UTC

다음SQL-호환 기능도 사용할 수 있습니다. 해당 데이터의 현재 시간 값을 얻으려면 유형:CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, 현지 시간, LOCALTIMESTAMP. 후자 4개는 다음을 받아들인다. 선택적인 1초 미만의 정밀도 사양. (참조섹션 9.9.4.) 이는 SQL 함수이며 다음과 같습니다.아님다음에서 인식됨 데이터 입력 문자열입니다.

8.5.2. 토토 꽁 머니/시간 출력

토토 꽁 머니/시간 유형의 출력 형식을 하나로 설정할 수 있습니다. 네 가지 스타일 ISO 8601 중SQL(Ingres), 전통포스트그레스(유닉스토토 꽁 머니형식) 또는 독일어. 기본값은ISO형식. (그SQL표준에는 ISO 8601 형식을 사용합니다. 의 이름"SQL"출력 형식은 역사적 사고입니다.)테이블 8-14각 출력 스타일의 예를 보여줍니다. 의 출력토토 꽁 머니그리고시간유형 물론 토토 꽁 머니나 시간 부분만 해당됩니다. 주어진 예.

표 8-14. 토토 꽁 머니/시간 출력 스타일

스타일 사양 설명
ISO ISO 8601, SQL 표준 1997-12-17 07:37:16-08
SQL 전통적인 스타일 1997년 12월 17일 07:37:16.00 태평양 표준시
포스트그레스 원래 스타일 1997년 12월 17일 수요일 07:37:16 태평양 표준시
독일어 지역 스타일 1997년 12월 17일 07:37:16.00 태평양 표준시

참고:ISO 8601은 대문자 사용을 지정합니다. 편지T토토 꽁 머니와 토토 꽁 머니를 구분하려면 시간.PostgreSQL수락 입력에서는 해당 형식을 사용하지만 출력에서는 공백을 사용합니다. 보다T, 위에 표시된 대로입니다. 이것은 가독성과 RFC 3339와의 일관성을 위해 다른 데이터베이스 시스템과 같습니다.

그 안에서SQL및 POSTGRES 스타일, DMY 필드 순서가 지정된 경우 토토 꽁 머니가 월 앞에 나타납니다. 지정하지 않으면 월이 일 앞에 표시됩니다. (참조섹션 8.5.1이 설정이 해석에 어떤 영향을 미치는지에 대해 값을 입력합니다.)테이블 8-15예시를 보여줍니다.

표 8-15. 토토 꽁 머니 순서 규칙

토토 꽁 머니 스타일설정 입력 순서 출력 예
SQL, DMY // 1997/12/17 15:37:16.00 CET
SQL, MDY // 1997년 12월 17일 07:37:16.00 태평양 표준시
포스트그레스, DMY // 1997년 12월 17일 수요일 07:37:16 태평양 표준시

토토 꽁 머니/시간 스타일은 다음을 사용하여 사용자가 선택할 수 있습니다.토토 꽁 머니 스타일 설정명령, 그토토 꽁 머니 스타일매개변수postgresql.conf구성 파일 또는PGDATESTYLE서버 또는 클라이언트의 환경 변수.

포맷 기능to_char(참조섹션 9.8)도 사용 가능 토토 꽁 머니/시간 출력 형식을 지정하는 보다 유연한 방법입니다.

8.5.3. 시간대

시간대 및 시간대 규칙은 다음의 영향을 받습니다. 지구 기하학뿐만 아니라 정치적 결정도 가능합니다. 주변 시간대 1900년대에는 세계가 다소 표준화되었지만 특히 다음과 같은 경우 임의로 변경되는 경향이 계속됩니다. 일광 절약 시간제 규칙을 준수합니다.PostgreSQL널리 사용되는 IANA를 사용합니다. (Olson) 역사에 대한 정보를 위한 시간대 데이터베이스 시간대 규칙. 미래의 시간에 대한 가정은 다음과 같습니다. 특정 시간대에 대해 알려진 최신 규칙이 계속 유지됩니다. 먼 미래에도 무한정 관찰될 것입니다.

PostgreSQL노력합니다 와 호환 가능SQL일반적인 사용법에 대한 표준 정의입니다. 그러나,SQL표준에 이상한 조합이 있습니다 토토 꽁 머니 및 시간 유형 및 기능. 두 가지 명백한 문제 다음은:

  • 비록토토 꽁 머니유형은 가질 수 없습니다. 연관된 시간대,시간캔을 입력하세요. 현실 세계의 시간대는 거의 의미가 없습니다. 토토 꽁 머니 및 시간과 연관되지 않는 한, 오프셋은 일광 절약 시간제를 적용하여 연중 달라질 수 있습니다. 경계.

  • 기본 시간대는 상수 숫자로 지정됩니다. 오프셋UTC. 그것은 그러므로 일광 절약 시간제에 적응하는 것은 불가능합니다. 토토 꽁 머니/시간 연산 수행DST경계.

이러한 문제를 해결하려면 토토 꽁 머니/시간을 사용하는 것이 좋습니다. 시간대를 사용할 때 토토 꽁 머니와 시간을 모두 포함하는 유형입니다. 우리 하다아님권장하다 유형을 사용하여시간대 포함 시간(비록 다음에서 지원되지만포스트그레SQL기존 애플리케이션 및 준수SQL표준).포스트그레SQL가정 토토 꽁 머니만 포함하는 모든 유형의 현지 시간대 또는 시간.

모든 시간대 인식 토토 꽁 머니와 시간은 내부적으로 저장됩니다.UTC. 그들은로 변환됩니다 에서 지정한 지역의 현지 시간시간대구성 매개변수가 표시되기 전에 클라이언트.

PostgreSQL당신은 다음을 할 수 있습니다 세 가지 다른 형식으로 시간대를 지정합니다.

  • 전체 시간대 이름, 예미국/New_York. 인식된 시간대 이름은에 나열되어 있습니다.pg_timezone_names보기(참조섹션 45.69). 포스트그레SQL다음을 사용합니다 이 목적을 위해 널리 사용되는 IANA 시간대 데이터 동일한 시간대 이름은 다른 많은 곳에서도 인식됩니다. 소프트웨어.

  • 예를 들어 시간대 약어PST. 이러한 사양은 단지 전체 시간대와 달리 UTC의 특정 오프셋 일광 절약 시간제를 암시할 수 있는 이름 전환 토토 꽁 머니 규칙도 마찬가지입니다. 인식되는 약어 에 나열되어 있습니다.pg_timezone_abbrevs보기(참조섹션 45.68). 당신 구성 매개변수를 설정할 수 없습니다.시간대또는log_timezone시간대 약어로 변경되지만 약어를 사용할 수 있습니다. 토토 꽁 머니/시간 입력 값과시간대에연산자.

  • 시간대 이름 및 약어 외에도PostgreSQL수락하겠습니다 POSIX 스타일 시간대 사양 형식성병오프셋또는성병오프셋DST, 여기서성병은 영역 약어입니다.오프셋은 숫자 오프셋입니다. UTC에서 서쪽으로 몇 시간 내에, 그리고DST선택적인 일광 절약 시간제입니다. 구역 약어, 한 시간 앞선 것으로 가정 주어진 오프셋. 예를 들어, 만약EST5EDT이미 인식된 영역이 아닙니다. 이름은 허용되며 기능적으로는 미국 동부 해안 시간과 동일합니다. 언제 일광 절약 시간제 구역 이름이 존재하면 다음으로 간주됩니다. 동일한 일광 절약 전환에 따라 사용됨 IANA 시간대 데이터베이스에서 사용되는 규칙posixrules항목. 표준에서PostgreSQL설치,posixrules다음과 같습니다미국/동부, POSIX 스타일 시간대 사양은 미국 일광 절약 시간제 규칙을 따릅니다. 필요한 경우, 다음을 대체하여 이 동작을 조정할 수 있습니다.posixrules파일.

요컨대 이것이 약어와 약어의 차이점입니다. 전체 이름: 약어는 UTC로부터의 특정 오프셋을 나타냅니다. 많은 전체 이름은 지역 일광 절약 시간제를 의미합니다. 시간 규칙이므로 두 가지 UTC 오프셋이 가능합니다. 예를 들어,2014-06-04 12:00 America/New_York뉴욕 현지 시간 정오를 나타냅니다. 특정 토토 꽁 머니는 동부 일광 절약 시간(UTC-4)이었습니다. 그래서2014-06-04 12:00 EDT다음을 지정합니다. 동시에 순간. 하지만2014-06-04 12:00 동부 표준시정오를 동부 표준시(UTC-5)로 지정합니다. 일광 절약 시간제가 명목상으로 적용되는지 여부에 관계없이 그 토토 꽁 머니에요.

문제를 복잡하게 만들기 위해 일부 관할권에서는 동일한 방법을 사용했습니다. 다른 UTC 오프셋을 의미하는 시간대 약어 다른 시간; 예를 들어 모스크바에서MSK몇 년 동안은 UTC+3을 의미했지만 지난 몇 년 동안은 UTC+4를 의미했습니다. 기타.PostgreSQL해석 그러한 약어는 그들이 의미하는 바에 따라(또는 가장 최근을 의미함) 지정된 토토 꽁 머니에; 하지만, 와 마찬가지로EST위의 예는 그렇지 않습니다. 해당 토토 꽁 머니의 현지 상용시와 반드시 동일해야 합니다.

POSIX 스타일 시간대 기능에 주의해야 합니다. 아무 것도 없기 때문에 자동으로 가짜 입력을 받아들이게 될 수 있습니다. 구역 약어의 합리성을 확인하십시오. 에 대한 예시간대를 FOOBAR로 설정0할 것이다 작업을 수행하고 다소 특이한 방법을 사용하여 시스템을 효과적으로 종료합니다. UTC의 약자. 명심해야 할 또 다른 문제는 POSIX 시간대 이름, 위치에는 양수 오프셋이 사용됩니다.서쪽그리니치. 다른 곳에서는,PostgreSQL양의 시간대 오프셋을 적용하는 ISO-8601 규칙을 따릅니다. 이다동쪽의 그리니치.

모든 경우에 시간대 이름과 약어는 다음과 같습니다. 대소문자를 구분하지 않고 인식됩니다. (이것은 다음과 같은 변경사항입니다.PostgreSQL이전 버전 8.2, 일부 상황에서는 대소문자를 구분하지만 그렇지 않습니다. 기타.)

시간대 이름이나 약어 모두 에 내장되어 있지 않습니다. 서버; 저장된 구성 파일에서 가져옵니다. 아래.../공유/시간대/그리고.../share/timezonesets/의 설치 디렉터리(참조섹션 B.3).

시간대구성 매개변수는 파일에서 설정할 수 있습니다.postgresql.conf또는 기타 에 설명된 표준 방식18장. 또한 일부 특별한 설정 방법:

  • SQL명령시간대 설정시간대를 설정합니다 세션을 위해. 이것은 다음의 대체 철자법입니다.다음으로 시간대 설정더 보기 SQL 사양 호환 구문.

  • PGTZ환경 변수는 다음과 같습니다. 에서 사용됨libpq클라이언트 보내다시간대 설정명령을 내리다 연결 시 서버.

8.5.4. 간격입력

간격값은 다음을 사용하여 쓸 수 있습니다. 다음과 같은 자세한 구문:

[@] 수량 단위 [수량 단위...] [방향]

어디에서수량숫자입니다 (아마도 서명됨);단위is마이크로초, 밀리초, , , 시간, , , , , 10년, 세기, 밀레니엄또는 이 단위의 약어 또는 복수형;방향될 수 있습니다또는 비어 있습니다. at 기호(@)은 선택적 노이즈입니다. 금액 다른 단위는 적절한 부호와 함께 암시적으로 추가됩니다. 회계.모든 것을 부정합니다 필드. 이 구문은 간격 출력에도 사용됩니다.간격 스타일다음으로 설정됨postgres_verbose.

일, 시간, 분, 초의 양은 다음과 같습니다. 명시적인 단위 표시 없이 지정됩니다. 예를 들어,'1 12:59:10'다음과 동일하게 읽혀집니다'1일 12시간 59분 10초'. 또한, 연도와 월의 조합은 대시로 지정할 수 있습니다. 예를 들어'200-10'동일하게 읽혀집니다 와 같이'200년 10개월'. (이것들은 더 짧은 형식은 실제로 허용되는 유일한 형식입니다.SQL표준이며 사용됩니다. 출력할 경우간격 스타일설정됨 에sql_standard.)

간격 값은 ISO 8601 시간으로도 쓸 수 있습니다. 간격, 다음 중 하나를 사용하여"다음으로 형식을 지정하세요 지정자"표준 섹션 4.4.3.2 또는"대체 형식"섹션의 4.4.3.3. 지정자가 포함된 형식은 다음과 같습니다.

P 수량 단위 [ 수량 단위 ...] [T [ 수량 단위 ...]]

문자열은 a로 시작해야 합니다.P및 다음을 포함할 수 있습니다.T다음을 소개합니다. 시간 단위. 사용 가능한 단위 약어가 제공됩니다. 에서테이블 8-16. 단위는 생략 가능하며, 임의로 지정할 수 있습니다. 주문하지만 하루보다 작은 단위는 이후에 나타나야 합니다.T. 특히, 다음의 의미는M이전인지 아니면 이전인지에 따라 다릅니다. 이후T.

표 8-16. ISO 8601 간격 단위 약어

약어 의미
Y
M 월(토토 꽁 머니 부분)
W
D
H 시간
M 분(시간 부분)
S

대체 형식:

피 [ -개월- ] [ T 시간:: ]

문자열은 다음으로 시작해야 합니다.P그리고T다음의 토토 꽁 머니와 시간 부분을 분리합니다. 간격. 값은 ISO와 유사한 숫자로 제공됩니다. 8601 토토 꽁 머니.

a로 간격 상수를 쓸 때필드사양을 지정하거나 할당할 때 a로 정의된 간격 열에 대한 문자열필드사양, 해석 표시되지 않은 수량은 다음에 따라 다릅니다.필드. 예를 들어간격 '1'년1년으로 읽히는 반면간격 '1'1초를 의미합니다. 또한, 필드 값"오른쪽으로"의 에서 허용하는 최하위 필드필드사양이 자동으로 표시됩니다. 폐기되었습니다. 예를 들어, 쓰기간격 '1 일 2:03:04' HOUR TO MINUTE결과적으로 초 필드는 있지만 일 필드는 아닙니다.

에 따르면SQL표준 간격 값의 모든 필드는 동일해야 합니다. 부호이므로 앞에 음수 부호가 모든 필드에 적용됩니다. 에 대한 예를 들어 간격 리터럴의 음수 기호'-1 2:03:04'요일과 요일 모두에 적용됩니다. 시/분/초 부분입니다.포스트그레SQL필드가 다음을 가질 수 있도록 허용합니다. 서로 다른 기호를 사용하며 전통적으로 각 분야를 다룹니다. 독립적으로 서명된 텍스트 표현이므로 이 예에서는 시/분/초 부분이 양수로 간주됩니다. 만일간격 스타일다음으로 설정됨sql_standard그런 다음 선행 기호가 고려됩니다. 모든 분야에 적용(단, 추가 표시가 없는 경우에만 해당) 나타납니다). 그렇지 않으면 전통적인PostgreSQL해석이 사용됩니다. 받는 사람 모호함을 피하려면 명시적인 기호를 첨부하는 것이 좋습니다. 필드가 음수인 경우 각 필드.

내부적으로간격값이 저장되었습니다 월, 일, 초로 표시됩니다. 이 작업은 번호 때문에 수행됩니다. 한 달의 일수는 다양하며, 다음과 같은 경우 하루는 23시간 또는 25시간이 될 수 있습니다. 일광 절약 시간 조정이 포함됩니다. 달과 일 필드는 정수이고 초 필드는 저장할 수 있습니다. 분수. 간격은 일반적으로 상수에서 생성되기 때문에 문자열 또는타임스탬프뺄셈, 이건 대부분의 경우 저장 방법이 잘 작동합니다. 기능justify_days그리고justify_hours조정 가능 정상 범위를 초과하는 요일과 시간.

자세한 입력 형식과 더 많은 일부 필드에서 압축 입력 형식, 필드 값은 소수 부분을 가질 수 있습니다. 예를 들어'1.5주'또는'01:02:03.45'. 이러한 입력은 다음으로 변환됩니다. 저장에 적합한 월, 일, 초 수. 이로 인해 소수의 개월 수가 발생하거나 일 수는 다음을 사용하여 하위 필드에 분수가 추가됩니다. 환산계수 1개월 = 30일, 1일 = 24시간. 에 대한 예'1.5개월'1개월이 됩니다 그리고 15일. 초만 분수로 표시됩니다. 출력.

테이블 8-17유효한 몇 가지 예를 보여줍니다.간격입력합니다.

표 8-17. 간격입력

설명
1-2 SQL 표준 형식: 1년 2개월
3 4:05:06 SQL 표준 형식: 3일 4시간 5분 6 초
1년 2개월 3일 4시간 5분 6 초 기존 Postgres 형식: 1년 2개월 3일 4시간 5분 6초
P1Y2M3DT4H5M6S ISO 8601"다음으로 형식을 지정하세요 지정자": 위와 같은 의미
P0001-02-03T04:05:06 ISO 8601"대안 형식": 위와 같은 의미

8.5.5. 간격 출력

간격 유형의 출력 형식은 다음 중 하나로 설정될 수 있습니다. 네 가지 스타일sql_standard, 포스트그레스, postgres_verbose, 또는iso_8601, 명령 사용SET 간격 스타일. 기본값은포스트그레스형식.테이블 8-18각 출력 스타일의 예를 보여줍니다.

sql_standard스타일은 생산합니다 SQL 표준 사양을 준수하는 출력 간격 리터럴 문자열(간격 값이 다음을 충족하는 경우) 표준의 제한사항(연-월만 또는 주간 단, 양극 성분과 음극 성분이 혼합되지 않음). 그렇지 않으면 출력은 표준 연월 리터럴처럼 보입니다. 문자열 뒤에 주간 리터럴 문자열이 오고 명시적 혼합 부호 간격을 명확하게 하기 위해 부호가 추가되었습니다.

의 출력포스트그레스타일 의 출력과 일치합니다.PostgreSQL8.4 이전 버전인 경우토토 꽁 머니 스타일매개변수가 다음으로 설정되었습니다.ISO.

의 출력postgres_verbose스타일은 다음의 출력과 일치합니다.포스트그레SQL8.4 이전 버전인 경우토토 꽁 머니 스타일매개변수가 다음으로 설정되었습니다. 비-ISO출력.

의 출력iso_8601스타일 다음과 일치합니다."다음으로 형식을 지정하세요. 지정자"ISO 섹션 4.4.3.2에 설명되어 있음 8601 표준.

표 8-18. 간격 출력 스타일 예

스타일 사양 연-월 간격 낮 시간 간격 혼합 간격
sql_standard 1-2 3 4:05:06 -1-2 +3 -4:05:06
포스트그레 1년 2개월 3일 04:05:06 -1년 -2개월 +3일 -04:05:06
postgres_verbose @ 1년 2개월 @ 3일 4시간 5분 6초 @ 1년 2개월 -3일 4시간 5분 6초 전
iso_8601 P1Y2M P3DT4H5M6S P-1Y-2M3DT-4H-5M-6S