PostgreSQL전체를 지원합니다 세트SQL날짜와 토토 꽁 머니 유형.
표 3-10. 날짜/토토 꽁 머니 유형
type | 설명 | 스토리지 | 초기 | 최신 | 해상도 |
---|---|---|---|---|---|
타임 스탬프 [(P)] 토토 꽁 머니대없이 | 날짜와 토토 꽁 머니 모두 | 8 바이트 | 4713 BC | AD 1465001 | 1 마이크로 초 / 14 자리 |
타임 스탬프 [(P)] [토토 꽁 머니대와 함께] | 날짜와 토토 꽁 머니 모두 | 8 바이트 | 4713 BC | AD 1465001 | 1 마이크로 초 / 14 자리 |
간격 [(P)] | 토토 꽁 머니 간격 | 12 바이트 | -178000000 년 | 178000000 년 | 1 마이크로 초 |
날짜 | 날짜 만 | 4 바이트 | 4713 BC | 32767 AD | 1 일 |
토토 꽁 머니 [(P)] [토토 꽁 머니대가없는 ] | 토토 꽁 머니의 토토 꽁 머니 전용 | 8 바이트 | 00:00:00.00 | 23:59:59.99 | 1 마이크로 초 |
토토 꽁 머니 [(P)] 토토 꽁 머니대와 함께 | 토토 꽁 머니의 토토 꽁 머니 만 | 12 바이트 | 00 : 00 : 00.00+12 | 23:59:59.99-12 | 1 마이크로 초 |
Time, 타임 스탬프, 그리고간격선택적 정밀도를 수락하십시오 값P초 분야에서 유지되는 분수 숫자 수. 에 의해 기본값은 정밀도에 명시적인 바인딩이 없습니다. 효과적인 정밀한 한계는 기본 이중에 의해 결정됩니다 값을 저장하는 데 사용되는 정밀 부동 소수점 번호 (초 을 위한간격그 이후 몇 초 만에 2000-01-01 용타임 스탬프). 유용한 범위 의P|타임 스탬프, 그러나 더 많은 것일 수 있습니다간격. 시스템은 받아 들일 것입니다P0에서 13까지 범위
토토 꽁 머니대 및 토토 꽁 머니대 규칙은 영향을받습니다 지구 기하학뿐만 아니라 정치적 결정. 주변의 토토 꽁 머니대 세계는 1900 년대에 다소 표준화되었다 계속해서 임의의 변화가 발생하기 쉽습니다.PostgreSQL운영 체제를 사용합니다 출력 토토 꽁 머니대 지원을 제공하는 기본 기능 및 이 시스템에는 일반적으로 정보가 포함되어 있습니다 1902 년부터 2038 년까지 (전체 범위에 해당 기존의 유닉스 시스템 시간).타임 스탬프와 토토 꽁 머니대및토토 꽁 머니대가있는 토토 꽁 머니의지 해당 연도 범위 내에서만 토토 꽁 머니대 정보를 사용하고 그 범위를 벗어난 토토 꽁 머니은UTC.
버전에서 업그레이드 경로를 보장하려면PostgreSQL7.0 이전에, 우리는 인식dateTime(동등한타임 스탬프) 및타임 스팬(동등한간격). 이러한 유형은 다음과 같습니다 이제에 암시적인 번역을 갖는 것으로 제한타임 스탬프and간격및 이것들에 대한 지원은 다음 릴리스에서 제거됩니다.postgresql(아마도 이름이 지정 될 것입니다 7.3).
유형AbstimeandReltime사용되는 정밀도 유형이 낮습니다 내부. 이러한 유형을 사용하지 않아도됩니다. 새로운 응용 프로그램은 오래된 응용 프로그램을 끝내도록 권장됩니다. 적절한 경우. 이러한 내부 유형 중 일부 또는 전부는 할 수 있습니다 향후 릴리스에서 사라집니다.
날짜 및 시간 입력은 거의 모든 합리적으로 허용됩니다. 를 포함한 형식ISO 8601, SQL-컴파일 가능, 전통PostgreSQL및 기타. 을 위한 일부 형식, 날짜 입력의 월 및 일 순서는 다음과 같습니다. 모호하고 예상을 지정하는 지원이 있습니다 이 분야의 주문. 명령세트 '우리'에 대한 데이터 스타일또는데이터 스타일을 설정하십시오 '노우 유럽'변형 지정"월 전", 명령'유럽'으로 데이터 스타일 설정변형 설정"월 전". 그만큼ISO스타일은 기본값이지만이 기본값은 가능합니다 컴파일 시간 또는 실행 시간에 변경되었습니다.
PostgreSQL더 유연합니다 취급 날짜/시간보다SQL표준 요구 사항. 보다부록 A정확한 구문 분석 날짜/시간 입력 규칙 및 인식 된 텍스트 필드 달, 요일 및 토토 꽁 머니대를 포함하여.
날짜 또는 시간 문자 그대로 입력이 필요하다는 것을 기억하십시오. 텍스트 문자열과 같은 단일 따옴표로 둘러싸여 있습니다. 참조섹션 1.1.2.5자세한 내용은SQL9X다음 구문이 필요합니다
타입[(P)] 'value'
여기서P선택 사항 정밀 사양은 그에 해당하는 정수입니다 초 분야의 분수 숫자 수. 정밀도 에 대해 지정Time, 타임 스탬프및간격타입.
다음은에 대한 가능한 입력입니다.날짜타입.
표 3-11. 날짜 입력
example | 설명 |
---|---|
1999 년 1 월 8 일 | 명백한 |
1999-01-08 | ISO-8601 형식, 선호 |
1/8/1999 | U.S.; 유럽 모드에서 8 월 1 일 읽기 |
8/1/1999 | 유럽; 미국 모드에서 8 월 1 일 읽기 |
1/18/1999 | U.S.; 모든 모드에서 1 월 18 일 읽기 |
19990108 | ISO-8601 년, 월, 일 |
990108 | ISO-8601 년, 월, 일 |
1999.008 | 연도 및 연도 |
99008 | 연도 및 연도 |
J2451187 | Julian Day |
BC 99 년 1 월 8 일 | 99 년 공통 시대 전 |
SQL99 당,이 유형은로 지정할 수 있습니다.Time또는 as토토 꽁 머니없는 토토 꽁 머니 존. 선택적 정밀도P0과 13 사이 여야합니다 입력 토토 꽁 머니 문자의 정밀도로 기본값.
다음은 유효합니다Time입력.
이 유형은 SQL92에 의해 정의되지만 정의는 전시합니다. 의심스러운 유용성으로 이어지는 속성. 대부분 사례,의 조합날짜, Time, 타임 스탬프 토토 꽁 머니대없이and타임 스탬프와 함께 토토 꽁 머니대전체 날짜/시간 범위를 제공해야합니다 모든 응용 프로그램에 필요한 기능.
선택 사항 정밀도P0과 13 사이 여야하며 기본값은 입력 토토 꽁 머니 문자 그대로.
토토 꽁 머니대가있는 토토 꽁 머니모든 것을 받아들입니다 입력도 합법적 인Time타입, 다음과 같이 법적 토토 꽁 머니대와 함께 추가되었습니다.
표 3-13. 토토 꽁 머니대 입력 토토 꽁 머니
example | 설명 |
---|---|
04:05:06.789-8 | ISO 8601 |
04:05:06-08:00 | ISO 8601 |
04:05-08:00 | ISO 8601 |
040506-08 | ISO 8601 |
참조테이블 3-14토토 꽁 머니대의 더 많은 예를 보려면
유효한 입력타임 스탬프 [ (P)] 토토 꽁 머니대없이유형은 날짜와 시간의 연결로 구성됩니다. 그 다음에 선택 사항ad또는BC, 선택 시간이 뒤 따릅니다 존. (아래 참조) 따라서
1999-01-08 04:05:06
유효합니다시간이없는 타임 스탬프 존그 값ISO-공동. 또한 광범위한 형식
1 월 8 일 04:05:06 1999 PST
지원됩니다.
선택적 정밀도P0과 13 사이 여야하며 기본값은 입력타임 스탬프리터럴.
for토토 꽁 머니대가없는 타임 스탬프, 입력에 지정된 명시 적 토토 꽁 머니대가 조용합니다 삼키기. 즉, 결과 날짜/시간 값이 도출됩니다 입력 값의 명시적인 날짜/시간 필드에서 토토 꽁 머니대에 맞게 조정되지 않았습니다.
에 대한 유효한 입력타임 스탬프타입 날짜와 시간의 연결로 구성되며 선택 사항ad또는BC, 옵션 토토 꽁 머니 구역이 이어집니다. (보다 아래.) 따라서
1999-01-08 04:05:06 -8:00
유효합니다타임 스탬프그 값ISO-공동. ~ 안에 추가, 광범위한 형식
1 월 8 일 04:05:06 1999 PST
지원됩니다.
선택적 정밀도P0과 13 사이 여야하며, 기본값은 입력타임 스탬프리터럴.
간격값은 함께 작성할 수 있습니다 다음 구문 :
수량 단위 [수량 단위 ...] [방향] @ 수량 단위 [수량 단위 ...] [방향]
여기서 :수량숫자입니다 (아마도 서명),UnitisSecond, Minute, Hour, day, 주간, Month, Year, 10 년, Century, 밀레니엄또는 약어 또는 복수 이 단위;방향can beAGO또는 빈. AT 사인 (@)는 선택적 노이즈입니다. 금액 다른 단위 중 하나는 적절하게 암시 적으로 추가됩니다 서명 회계.
일, 토토 꽁 머니, 몇 분 및 초의 양이 될 수 있습니다 명시적인 단위 표시없이 지정됩니다. 예를 들어,'1 12:59:10'|'1 일 12 시간 59 분 10 초'.
선택 사항 정밀도P0과 13 사이 여야하며 기본값은 입력 문자.
다음SQL-컴파일 가능 함수는 다음과 같이 사용할 수 있습니다 해당 데이터 유형에 대한 날짜 또는 시간 입력 :current_date, current_time, current_timestamp. 후자는 두 사람을 받아들입니다 선택적 정밀 사양.
PostgreSQL또한 지원됩니다 편의를위한 몇 가지 특별 상수.
표 3-15. 특별 날짜/시간 상수
Constant | 설명 |
---|---|
epoch | 1970-01-01 00 : 00 : 00+00 (UNIX 시스템 토토 꽁 머니 영) |
Infinity | 다른 유효한 토토 꽁 머니보다 늦게 |
-infinity | 다른 유효한 토토 꽁 머니보다 일찍 |
Invalid | 불법 입력 |
now | 현재 트랜잭션 시간 |
오늘 | 오늘 자정 |
내일 | 내일 자정 |
어제 | 어제 자정 |
Zulu, Allballs, Z | 00 : 00 : 00.00 GMT |
참고 :postgresql버전 7.2,'current'더 이상 지원되지 않습니다 날짜/시간 상수. 이전에,'current'특별 값으로 저장되었습니다. 그리고 평가'now'표현 또는 유형 변환에 사용됩니다.
출력 형식은 4 가지 스타일 ISO 중 하나로 설정할 수 있습니다. 8601,SQL(Ingres), 전통적인 PostgreSQL 및 독일어,데이터 스타일 설정. 기본값은입니다.ISO형식.
표 3-16. 날짜/시간 출력 스타일
스타일 사양 | 설명 | example |
---|---|---|
'ISO' | ISO-8601 표준 | 1997-12-17 07:37:16-08 |
'SQL' | 전통적인 스타일 | 12/17/1997 07 : 37 : 16.00 PST |
'PostgreSQL' | 원본 스타일 | wed 12 월 17 일 07:37:16 1997 PST |
'독일어' | 지역 스타일 | 17.12.1997 07 : 37 : 16.00 PST |
출력날짜및Time스타일은 물론 날짜 또는 시간 부분 만 위의 예에 따라.
theSQL스타일이 있습니다 유럽 및 비 유럽 (미국) 변형 월이 날을 따르는 지 또는 그 반대의 경우. (참조섹션 3.5.1이 설정이 입력 해석에 어떤 영향을 미치는지 가치.)
표 3-17. 날짜 주문 규칙
스타일 사양 | 설명 | example |
---|---|---|
유럽 | day/Month/년 | 17/12/1997 15 : 37 : 16.00 MET |
us | Month/day/Year | 12/17/1997 07 : 37 : 16.00 PST |
간격출력은 입력처럼 보입니다 와 같은 단위를 제외하고 형식Week또는Century는 몇 년으로 변환되었습니다 날. ISO 모드에서 출력은
[수량 단위 [...]] [Days] 시간 : Minutes [Ago]
날짜/시간의 모양에 영향을 줄 수있는 몇 가지 방법이 있습니다. 유형 :
thepgdatestyle환경 백엔드가 우체국 장에서 직접 사용하는 변수 스타트 업.
thepgdatestyle환경 프론트 엔드에서 사용하는 변수libpq세션 시작.
데이터 스타일 설정 SQL명령.
PostgreSQL호환SQL92일반적인 사용에 대한 정의. 그러나SQL92Standard는 날짜가 이상적입니다 시간 유형 및 기능. 두 가지 명백한 문제는 다음과 같습니다.
비록날짜타입은 그렇지 않습니다 관련 토토 꽁 머니대가 있습니다.Time타입 캔. 현실 세계의 토토 꽁 머니대는 할 수 있습니다 날짜와 관련이없는 한 의미가 없습니다. 오프셋 이후 시간이 일년 내내 다를 수있는 시간 일광 절약 시간 경계.
기본 토토 꽁 머니대는 일정한 정수로 지정됩니다. GMT/UTC에서 오프셋. 적응할 수 없습니다 날짜/시간 산술을 수행 할 때 일광 절약 시간dst경계.
이러한 어려움을 해결하려면 날짜/시간을 사용하는 것이 좋습니다 토토 꽁 머니대를 사용할 때 날짜와 시간을 모두 포함하는 유형. 우리 추천하다아님사용 SQL92 유형토토 꽁 머니대가있는 토토 꽁 머니PostgreSQL레거시 응용 프로그램 및 용 다른 RDBMS 구현과의 호환성).PostgreSQL현지 토토 꽁 머니대를 가정합니다 날짜 또는 시간 만 포함 된 모든 유형의 경우. 또한 토토 꽁 머니대 지원은 기본 운영 체제에서 파생됩니다 시간 구역 기능이므로 일광 절약을 처리 할 수 있습니다 시간과 기타 예상되는 행동.
PostgreSQL획득 기본 운영 체제의 토토 꽁 머니대 지원 1902 년에서 2038 년 사이의 날짜 (일반적인 날짜 제한 근처 유닉스 스타일 시스템). 이 범위를 벗어난 모든 날짜는 다음과 같습니다 보편적 인 조정 된 시간에 지정되고 사용 된 것으로 가정 (UTC).
모든 날짜와 시간은 UTC에 내부적으로 저장됩니다. 전통적으로 그리니치 임시 (GMT)로 알려져 있습니다. 시간은입니다 가기 전에 데이터베이스 서버에서 로컬 타임으로 변환 클라이언트 프론트 엔드로 전송되므로 기본적으로 서버에 있습니다. 토토 꽁 머니대.
토토 꽁 머니대 행동에 영향을 미치는 몇 가지 방법이 있습니다.
theTZ환경 변수입니다 백엔드가 우체국 마스터 스타트 업에서 직접 사용하여 기본 토토 꽁 머니대.
thePGTZ환경 변수, if 클라이언트에서 설정하고 libpq에서 a를 보내는 데 사용됩니다.토토 꽁 머니대 설정백엔드에 명령 연결.
theSQL명령토토 꽁 머니대 설정토토 꽁 머니대를 설정합니다 세션.
theSQL92예선 에
타임 스탬프at Time Zone 'Zone'
여기서Zone할 수 있습니다 텍스트 토토 꽁 머니대로 지정 됨 (예 :'PST') 또는 간격으로 (예 :간격 '-08 : 00').
참고 :잘못된 토토 꽁 머니대가 지정된 경우 토토 꽁 머니대는 GMT가됩니다 (어쨌든 대부분의 시스템에서).
참고 :런타임 옵션 인 경우Australian_timezones가 설정된 다음CSTandEST참조 미국인이 아닌 호주 토토 꽁 머니대에.
PostgreSQLJulian을 사용합니다 모든 날짜/시간 계산 날짜. 그들은 좋은 것을 가지고 있습니다 날짜를 올바르게 예측/계산하는 속성 최근 4713BC 이상의 미래에 이르기까지 연도의 길이는 365.2425 일입니다.
19 세기 이전의 날짜 규칙 흥미로운 독서이지만 보증하기에 충분히 일관되지 않습니다 날짜/시간 핸들러로 코딩.