포스트그레SQL전체 지원 세트SQL날짜와 배트맨 토토 유형, 다음에 표시됨표 8-9. 이러한 데이터 유형에 사용할 수 있는 작업은에 설명되어 있습니다.PostgreSQL : 문서 : 8.0 : 날짜/스포츠 토토 베트맨 기능 및 연산자.
표 8-9. 날짜/배트맨 토토 유형
| 이름 | 저장소 크기 | 설명 | 낮은 가치 | 높은 가치 | 해결 |
|---|---|---|---|---|---|
| 타임스탬프 [ (p) ] [ 배트맨 토토대 없음 ] | 8바이트 | 날짜 및 배트맨 토토 모두 | 기원전 4713년 | 5874897 서기 | 1마이크로초/14자리 |
| 타임스탬프 [ (p) ] 배트맨 토토대 포함 | 8바이트 | 날짜 및 배트맨 토토 모두, 배트맨 토토대 포함 | 기원전 4713년 | 5874897 서기 | 1마이크로초/14자리 |
| 간격 [ (p) ] | 12바이트 | 배트맨 토토 간격 | -178000000년 | 178000000년 | 1마이크로초/14자리 |
| 날짜 | 4바이트 | 날짜만 | 기원전 4713년 | 5874897 광고 | 1일 |
| 배트맨 토토 [ (p) ] [ 배트맨 토토대 없음 ] | 8바이트 | 배트맨 토토만 해당 | 00:00:00.00 | 23:59:59.99 | 1마이크로초/14자리 |
| 배트맨 토토 [ (p) ] 배트맨 토토대 포함 | 12바이트 | 배트맨 토토대만, 배트맨 토토대 포함 | 00:00:00.00+12 | 23:59:59.99-12 | 1마이크로초/14자리 |
참고:이전PostgreSQL7.3, 그냥 작성타임스탬프다음과 동일함배트맨 토토대가 포함된 타임스탬프. 이것은 다음으로 변경되었습니다. SQL 규정 준수.
배트맨 토토, 타임스탬프, 그리고간격선택적 정밀도 허용 값p다음을 지정합니다. 초 필드에 유지되는 소수 자릿수입니다. 에 의해 기본적으로 정밀도에는 명시적인 제한이 없습니다. 허용된 범위p는 0부터 6까지입니다.타임스탬프그리고간격유형.
참고:언제타임스탬프값 배정밀도 부동 소수점 숫자로 저장됩니다. (현재 기본값) 정밀도의 유효 한계는 6 미만이어야 합니다.타임스탬프값은 다음과 같습니다 2000년 1월 1일 자정 전후의 초 단위로 저장됩니다. 몇 년 이내의 날짜에 대해 마이크로초 정밀도가 달성됩니다. 2000-01-01년이지만 날짜의 정밀도가 저하됩니다. 더 멀리. 언제타임스탬프값은 다음과 같습니다 8바이트 정수로 저장됩니다(컴파일 타임 옵션). 마이크로초 정밀도는 전체 범위에서 사용할 수 있습니다. 가치. 그러나 8바이트 정수 타임스탬프에는 더 많은 정보가 있습니다. 위에 표시된 날짜보다 제한된 범위의 날짜: 기원전 4713년부터 최대 서기 294276년. 동일한 컴파일 타임 옵션도 다음을 결정합니다. 이든배트맨 토토그리고간격값은 부동 소수점 또는 8바이트 정수. 부동 소수점의 경우, 큰간격값의 정밀도가 다음과 같이 저하됩니다. 간격의 크기가 증가합니다.
다음을 위해배트맨 토토유형, 허용 범위p8바이트인 경우 0부터 6까지입니다. 정수 저장이 사용되며, 부동 소수점일 경우 0부터 10까지입니다. 저장용량이 사용됩니다.
유형배트맨 토토대 포함 배트맨 토토정의됨 SQL 표준에 따라 정의되지만 정의는 다음과 같은 속성을 나타냅니다. 의심스러운 유용성을 초래합니다. 대부분의 경우 다음의 조합은날짜, 배트맨 토토, 배트맨 토토대 없는 타임스탬프및배트맨 토토대가 포함된 타임스탬프전체를 제공해야 합니다. 모든 애플리케이션에 필요한 날짜/배트맨 토토 기능 범위
유형절대그리고상대배트맨 토토은 정밀도가 낮은 유형으로 사용됩니다. 내부적으로. 새 항목에서는 이러한 유형을 사용하지 않는 것이 좋습니다. 응용 프로그램이 있는 경우 이전 응용 프로그램을 옮기는 것이 좋습니다. 적절한. 이러한 내부 유형 중 일부 또는 전부가 사라질 수 있습니다. 향후 릴리스에서.
날짜 및 배트맨 토토 입력은 거의 모든 합리적인 방식으로 허용됩니다. ISO 8601을 포함한 형식SQL-호환, 전통포스트그레스및 기타. 일부 형식의 경우 날짜 입력의 월, 일, 연도 순서가 모호하고 이들의 예상 순서를 지정하는 지원이 있습니다. 전지. 설정날짜 스타일매개변수 ~MDY월-일-연도 선택 해석,DMY선택하다 일-월-년 해석 또는YMD연월일 해석을 선택합니다.
PostgreSQL더 유연해졌습니다. 날짜/배트맨 토토 입력을 처리할 때SQL표준이 필요합니다. 보다부록 B정확한 분석을 위해 날짜/배트맨 토토 입력 규칙 및 인식된 텍스트 필드에 대한 규칙 월, 요일, 배트맨 토토대를 포함합니다.
모든 날짜 또는 배트맨 토토 리터럴 입력은 다음과 같아야 함을 기억하십시오. 텍스트 문자열처럼 작은따옴표로 묶습니다. 참조섹션 4.1.2.5더 많은 정보를 원하시면.SQL다음 구문이 필요합니다
유형 [ (p) ] '값'
어디에서p선택사항 정밀도 사양은 다음에 해당하는 정수입니다. 초 필드의 소수 자릿수입니다. 정밀 캔 에 대해 지정되다배트맨 토토, 타임스탬프및간격유형. 허용되는 값은 위에 언급되어 있습니다. 정밀도가 없으면 상수 사양에 지정되면 기본값은 리터럴 값의 정밀도.
테이블 8-10다음에 대한 몇 가지 가능한 입력을 표시합니다.날짜유형.
표 8-10. 날짜 입력
| 예 | 설명 |
|---|---|
| 1999년 1월 8일 | 어떠한 경우에도 명확함날짜 스타일입력 모드 |
| 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일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모드, 그렇지 않으면 오류 |
| 08-1-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 | 율리우스력의 날 |
| 기원전 99년 1월 8일 | 서기 99년 |
배트맨 토토 유형은 다음과 같습니다.배트맨 토토 [ (p) ] 배트맨 토토대 없음그리고배트맨 토토 [ (p) ] 배트맨 토토대 포함. 그냥 쓰고 있어요배트맨 토토다음과 동일함배트맨 토토대가 없는 배트맨 토토.
이러한 유형에 대한 유효한 입력은 배트맨 토토으로 구성됩니다. 그 뒤에 선택적 배트맨 토토대가 옵니다. (보다테이블 8-11그리고테이블 8-12.) 입력에 배트맨 토토대가 지정된 경우배트맨 토토대가 없는 배트맨 토토조용히 무시됩니다.
표 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 | 이름으로 지정된 배트맨 토토대 |
표 8-12. 배트맨 토토대 입력
| 예 | 설명 |
|---|---|
| PST | 태평양 표준시 |
| -8:00 | PST용 ISO-8601 오프셋 |
| -800 | PST용 ISO-8601 오프셋 |
| -8 | PST용 ISO-8601 오프셋 |
| 줄루 | UTC의 군사 약어 |
| z | 약식줄루 |
참조PostgreSQL : 문서 : 8.0 : 날짜/토토 결과 지원인식되는 배트맨 토토대 이름 목록 입력.
타임스탬프 유형에 대한 유효한 입력은 다음으로 구성됩니다. 날짜와 배트맨 토토을 연결하고 그 뒤에 선택사항을 붙임 배트맨 토토대, 그 뒤에 선택사항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'
은배트맨 토토대가 포함된 타임스탬프. PostgreSQL다음과 다릅니다. 표준을 요구하여타임스탬프 포함 배트맨 토토대리터럴은 명시적으로 입력되어야 합니다:
배트맨 토토대 '2004-10-19 10:23:54+02'가 포함된 타임스탬프
리터럴이 다음으로 명시적으로 표시되지 않은 경우배트맨 토토대가 포함된 타임스탬프, PostgreSQL 리터럴의 배트맨 토토대 표시를 자동으로 무시합니다. 즉, 결과 날짜/배트맨 토토 값은 입력 값의 날짜/배트맨 토토 필드이며 조정되지 않습니다. 배트맨 토토대.
용배트맨 토토대가 포함된 타임스탬프, 내부적으로 저장된 값은 항상 UTC(Universal 전통적으로 그리니치 표준시로 알려진 협정시GMT). 다음과 같은 입력 값 명시적인 배트맨 토토대가 지정되어 있는 경우 다음을 사용하여 UTC로 변환됩니다. 해당 배트맨 토토대에 대한 적절한 오프셋입니다. 배트맨 토토대가 없는 경우 입력 문자열에 명시된 경우 해당 문자열은 시스템이 나타내는 배트맨 토토대배트맨 토토대매개변수, 에 대한 오프셋을 사용하여 UTC로 변환됩니다.배트맨 토토대구역.
때 a배트맨 토토대가 포함된 타임스탬프값이 출력되면 항상 UTC에서 UTC로 변환됩니다. 현재의배트맨 토토대영역 및 표시됨 해당 지역의 현지 배트맨 토토으로 표시됩니다. 다른 배트맨 토토의 배트맨 토토을 보려면 영역, 변경 중 하나배트맨 토토대또는 사용 그만큼배트맨 토토대구성(참조섹션 9.9.3).
전환 사이타임스탬프 없음 배트맨 토토대그리고배트맨 토토이 포함된 타임스탬프 존일반적으로 다음과 같이 가정합니다.타임스탬프 배트맨 토토대 없음값은 다음과 같이 취하거나 주어져야 합니다.배트맨 토토대현지 배트맨 토토. 다른 다음을 사용하여 변환을 위해 영역 참조를 지정할 수 있습니다.배트맨 토토대.
간격값은 다음으로 쓸 수 있습니다. 다음 구문:
[@] 수량 단위 [수량 단위...] [방향]
어디:수량은 번호(서명되었을 수도 있음);단위is초, 분, 배트맨 토토, 일, 주, 월, 년, 10년, 세기, 밀레니엄, 또는 이러한 단위의 약어 또는 복수형;방향될 수 있습니다전또는 비어 있습니다. at 기호(@)은 선택적 노이즈입니다. 다양한 금액 단위는 암시적으로 적절한 부호로 합산됩니다. 회계.
일, 배트맨 토토, 분, 초의 양은 다음과 같습니다. 명시적인 단위 표시 없이 지정됩니다. 예를 들어,'1 12:59:10'다음과 동일하게 읽혀집니다'1일 12배트맨 토토 59분 10초'.
선택적 정밀도p0에서 6 사이여야 하며 기본값은 다음과 같습니다. 입력 리터럴입니다.
포스트그레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개는 다음을 받아들인다. 선택적 정밀 사양. (보다섹션 9.9.4.) 그러나 이는 SQL 함수이며 다음과 같습니다.아님다음으로 인식됨 데이터 입력 문자열입니다.
날짜/배트맨 토토 유형의 출력 형식을 하나로 설정할 수 있습니다 네 가지 스타일 ISO 8601 중SQL(Ingres), 기존 POSTGRES 및 독일어, 명령 사용SET 날짜 스타일. 기본값은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 PST |
| 포스트그레스 | 원래 스타일 | 1997년 12월 17일 수요일 07:37:16 PST |
| 독일어 | 지역 스타일 | 1997년 12월 17일 07:37:16.00 PST |
에서SQL및 POSTGRES 스타일, DMY 필드 순서가 지정된 경우 날짜가 월 앞에 나타납니다. 지정하지 않으면 월이 일 앞에 표시됩니다. (보다섹션 8.5.1이 설정이 해석에 어떤 영향을 미치는지에 대해 값을 입력합니다.)테이블 8-15예를 보여줍니다.
표 8-15. 날짜 순서 규칙
| 날짜 스타일설정 | 입력 순서 | 출력 예 |
|---|---|---|
| SQL, DMY | 일/월/년 | 1997년 17월 12일 15:37:16.00 CET |
| SQL, MDY | 월/일/년 | 1997년 12월 17일 07:37:16.00 PST |
| 포스트그레스, DMY | 일/월/년 | 1997년 12월 17일 수요일 07:37:16 PST |
간격출력은 입력과 같습니다. 형식(다음과 같은 단위 제외)세기또는주연도로 변환되며 일과전로 변환됩니다. 적절한 표시. ISO 모드에서 출력은 다음과 같습니다.
[ 수량 단위 [ ... ] ] [ 일 ] [ 배트맨 토토:분:초 ]
날짜/배트맨 토토 스타일은 다음을 사용하여 사용자가 선택할 수 있습니다.날짜 스타일 설정명령, 그날짜 스타일매개변수
그만큼postgresql.conf구성
파일 또는PGDATESTYLE환경
서버나 클라이언트의 변수입니다. 서식 지정 기능to_char(참조섹션 9.8)도 사용 가능
날짜/배트맨 토토 출력 형식을 지정하는 보다 유연한 방법입니다.
배트맨 토토대와 배트맨 토토대 규칙은 다음의 영향을 받습니다. 지구 기하학뿐만 아니라 정치적 결정도 가능합니다. 주변 배트맨 토토대 1900년대에는 세계가 다소 표준화되었지만 특히 다음과 같은 경우 임의로 변경되는 경향이 계속됩니다. 일광 절약 배트맨 토토제 규칙을 준수합니다.PostgreSQL현재 지원 1902년부터 2038년까지의 일광 절약 배트맨 토토제 규칙 (기존 Unix 시스템의 전체 범위에 해당) 배트맨 토토). 해당 범위를 벗어난 배트맨 토토은 다음으로 간주됩니다."표준시"선택한 배트맨 토토대에 대해서는 아니요 일년 중 어느 시기에 속하든 상관없습니다.
PostgreSQL노력합니다 와 호환 가능SQL일반적인 사용법에 대한 표준 정의입니다. 그러나,SQL표준에 이상한 조합이 있습니다 날짜 및 배트맨 토토 유형 및 기능. 두 가지 명백한 문제 이다:
비록날짜유형은 그렇지 않습니다. 연관된 배트맨 토토대가 있습니다.배트맨 토토캔을 입력하세요. 현실 세계의 배트맨 토토대 날짜와 연관되지 않는 이상 의미가 거의 없습니다. 오프셋은 연중 내내 달라질 수 있으므로 일광 절약 배트맨 토토제 경계.
기본 배트맨 토토대는 상수 숫자로 지정됩니다. 오프셋UTC. 그것은 따라서 일광 절약 배트맨 토토제에 적응할 수 없습니다. 날짜/배트맨 토토 연산을 수행할 때DST경계.
이러한 문제를 해결하려면 날짜/배트맨 토토을 사용하는 것이 좋습니다. 배트맨 토토대를 사용할 때 날짜와 배트맨 토토을 모두 포함하는 유형입니다. 우리 추천하다아님사용 중 유형배트맨 토토대가 있는 배트맨 토토(하지만 에서 지원됩니다.PostgreSQL용 레거시 애플리케이션 및 규정 준수를 위해SQL표준).PostgreSQL현지 배트맨 토토대로 가정합니다. 날짜 또는 배트맨 토토만 포함하는 모든 유형에 대해.
모든 배트맨 토토대 인식 날짜와 배트맨 토토은 내부적으로 저장됩니다.UTC. 그들은로 변환됩니다 에서 지정한 지역의 현지 배트맨 토토배트맨 토토대구성 클라이언트에 표시되기 전의 매개변수입니다.
그배트맨 토토대구성 매개변수는 파일에서 설정될 수 있습니다postgresql.conf또는 다른 위치 에 설명된 표준 방식섹션 16.4. 또한 여러 가지가 있습니다 특별한 설정 방법:
만약배트맨 토토대다음에 지정되지 않았습니다.postgresql.conf또한 postmaster 명령줄 스위치를 사용하면 서버가 다음을 사용하려고 합니다. 의 값TZ환경 변수를 기본 배트맨 토토대로 설정합니다. 만약에TZ정의되지 않았거나 배트맨 토토이 아닙니다. 알려진 영역 이름포스트그레SQL, 서버는 다음을 시도합니다. 운영 체제의 기본 배트맨 토토대를 결정합니다. C 라이브러리 함수의 동작 확인현지배트맨 토토(). 기본 배트맨 토토대는 다음과 같습니다. 중에서 가장 가까운 것으로 선택됨PostgreSQL의 알려진 배트맨 토토대.
그SQL명령배트맨 토토대 설정배트맨 토토대를 설정합니다 세션을 위해. 이것은 다음의 대체 철자법입니다.다음으로 배트맨 토토대 설정더 보기 SQL 사양 호환 구문.
그PGTZ환경 변수, if 클라이언트에 설정되어 다음에서 사용됩니다.libpq보내기 신청서배트맨 토토대 설정명령을 연결 시 서버에 연결됩니다.
참조PostgreSQL : 문서 : 8.0 : 날짜/토토 결과 지원용 사용 가능한 배트맨 토토대 목록입니다.
포스트그레SQL줄리안을 사용합니다 모든 날짜/배트맨 토토 계산에 대한 날짜입니다. 그들은 좋은 것을 가지고 있습니다 어떤 날짜라도 정확하게 예측/계산하는 속성 기원전 4713년보다 최근부터 먼 미래까지, 1년의 길이가 365.2425일이라고 가정합니다.
19세기 이전 날짜 관례로 인해 흥미로운 내용이지만 보증할 만큼 일관성이 없습니다. 날짜/배트맨 토토 핸들러로 코딩합니다.