postgresql | ||
---|---|---|
이전 | 8 장 데이터 유형 | 다음 |
두 가지 기본적인 종류의 날짜 및 스포츠 토토 결과 측정이 있습니다. 시계 스포츠 토토 결과 및 스포츠 토토 결과 간격. 두 수량 모두 연속성을 가지고 있습니다 스포츠 토토 결과 자체와 마찬가지로 부드러움. Postgres는 두 가지 기본을 공급합니다 사용자 지향 날짜 및 스포츠 토토 결과 유형, DateTime 및 Timespan도 관련 SQL92는 날짜와 스포츠 토토 결과을 입력합니다.
다른 날짜 및 스포츠 토토 결과 유형도 제공됩니다. 역사적 이유.
표 8-7. Postgres 날짜/스포츠 토토 결과 유형
날짜/스포츠 토토 결과 유형 | 스토리지 | 추천 | 설명 |
---|---|---|---|
Abstime | 4 바이트 | 원래 날짜와 스포츠 토토 결과 | 제한 범위 |
날짜 | 4 바이트 | SQL92 유형 | 넓은 범위 |
dateTime | 8 바이트 | 최고의 일반 날짜와 시간 | 넓은 범위, 높은 정밀도 |
간격 | 12 바이트 | SQL92 유형 | 타임 스팬에 해당 |
Reltime | 4 바이트 | 원래 시간 간격 | 제한 범위, 낮음 정도 |
TIME | 4 바이트 | SQL92 유형 | 넓은 범위 |
타임 스팬 | 12 바이트 | 최고의 일반 시간 간격 | 넓은 범위, 높은 정밀도 |
타임 스탬프 | 4 바이트 | SQL92 유형 | 제한 범위 |
표 8-8. Postgres 날짜/시간 범위
날짜/스포츠 토토 결과 유형 | 초기 | 최신 | 해상도 |
---|---|---|---|
Abstime | 1901-12-14 | 2038-01-19 | 1 초 |
날짜 | 4713 BC | 제한 없음 | 1 일 |
DateTime | 4713 BC | 제한 없음 | 1 마이크로 세크에서 14 자리 |
간격 | 제한 없음 | 제한 없음 | 1 MicroSec |
Reltime | -68 년 | +68 년 | 1 초 |
Time | 00:00:00.00 | 23:59:59.99 | 1 MicroSec |
Timespan | 제한 없음 | 제한 없음 | 1 MicroSec (14 자리) |
타임 스탬프 | 1901-12-14 | 2038-01-19 | 1 초 |
Postgres endevours는 SQL92 정의와 호환됩니다 일반적인 사용. SQL92 표준에는 날짜와 시간이 홀수 혼합되어 있습니다. 유형과 기능. 예를 들어, 날짜 유형은 그렇습니다 관련 시간대가 없으면 시간 유형이 할 수 있습니다. 기본값 시간대는 GMT/UTC에서 일정한 오프셋으로 지정됩니다. 하지만, 현실 세계의 시간대는 관련이없는 한 의미가 없을 수 있습니다. 오프셋이 올해.
이러한 어려움을 없애기 위해 Postgres는 시간대를 연관시킵니다 날짜와 시간을 모두 포함하는 날짜 및 시간 유형으로 만 날짜 또는 시간 만 포함 된 모든 유형의 현지 시간을 가정합니다. 또한 시간대 지원은 기본 운영에서 파생됩니다. 시스템 시간대 기능은 일광을 처리 할 수 있습니다 저축 시간 및 기타 예상 행동.
향후 릴리스에서 날짜/스포츠 토토 결과 유형의 수가 줄어 듭니다. DateTime의 현재 구현이 타임 스탬프가되면서 타임 스팬은 간격이되고 (아마도) 삼각 및 릴 타임 타임 스탬프와 간격에 찬성하여 더 이상 사용되지 않습니다. 더 SQL92의 날짜/시간 정의의 비전 기능 표준은 추구되지 않을 것입니다.
출력 형식은 4 가지 스타일 중 하나로 설정할 수 있습니다 : ISO-8601, SQL (Ingres), 전통적인 우편둥이 및 독일인.
표 8-9. Postgres 날짜 스타일
스타일 사양 | 설명 | example |
---|---|---|
ISO | ISO-8601 표준 | 1997-12-17 07:37:16-08 |
SQL | 전통적인 스타일 | 12/17/1997 07 : 37 : 16.00 PST |
Postgres | 원본 스타일 | 수요일 12 월 17 일 07:37:16 1997 PST |
독일어 | 지역 스타일 | 17.12.1997 07 : 37 : 16.00 PST |
SQL 스타일에는 유럽과 비 유럽 (US) 변형이 있습니다. 월이 날을 따르는 지 여부를 결정합니다.
표 8-10. Postgres 날짜 주문 규칙
스타일 사양 | 설명 | example |
---|---|---|
유럽 | 지역 컨벤션 | 17/12/1997 15 : 37 : 16.00 MET |
NANUUREAPE | 지역 컨벤션 | 12/17/1997 07 : 37 : 16.00 PST |
US | 지역 컨벤션 | 12/17/1997 07 : 37 : 16.00 PST |
날짜/시간 모양에 영향을 미치는 몇 가지 방법이 있습니다. 유형 :
백엔드가 사용하는 PGDATESTYLE ENVIRNING 변수 우체국 마스터 스타트 업에서 직접.
프론트 엔드에서 사용하는 PGDATESTYLE 환경 변수 세션 스타트 업에 libpq.
데이터 스타일 SQL 명령 설정.
Postgres v6.3 (및 이전)의 경우 기본 날짜/시간 스타일은 다음과 같습니다. "전통적인 우편둥이". 향후 릴리스에서는 기본값이 될 수 있습니다 날짜 사양 모호성 및 Y2K를 완화시키는 ISO-8601 콜레이션 문제.
Postgres는 기본 작동에서 시간대 지원을 얻습니다 체계. 모든 날짜와 시간은 내부적으로 유니버설로 저장됩니다 Greenwich Lear Time으로 알려진 조정 된 시간 (UTC) (GMT). 데이터베이스 서버에서 시간이 현지 시간으로 변환됩니다. 클라이언트 프론트 엔드로 보내기 전에 기본적으로 서버 시간대
스포츠 토토 결과대 행동에 영향을 미치는 몇 가지 방법이 있습니다.
백엔드에서 직접 사용하는 TZ 환경 변수 기본 스포츠 토토 결과대로 우체국 마스터 스타트 업.
libpq는 스포츠 토토 결과대 정보를 백엔드로 보냅니다. 연결.
스포츠 토토 결과대 설정SQL은 시간대를 설정합니다 세션을 위해.
잘못된 스포츠 토토 결과대가 지정되면 스포츠 토토 결과대가 GMT가됩니다. (어쨌든 대부분의 시스템에서).
일반 사용 날짜 및 시간은 광범위한 스타일을 사용하여 입력됩니다. 등방성, SQL 호환, 전통적인 우편둥이 등을 포함합니다 날짜와 시간의 다른 순열. 해석의 경우 모호 할 수 있습니다 (많은 전통적인 스타일로 상당히 가능합니다. 날짜 사양) Postgres는 스타일 설정을 사용하여 해결합니다. 모호.
대부분의 날짜 및 시간 유형 데이터 입력에 대한 코드를 공유합니다. 그것들을 위해 입력이 다양한 스타일을 가질 수 있습니다. 을 위한 숫자 날짜 표현, 유럽 및 미국 협약이 가능합니다 다르고, 적절한 해석은를 사용하여 얻습니다.데이터 스타일 설정데이터를 입력하기 전에 명령. 스타일 설정은 다양한 스타일의 사용을 배제하지 않습니다. 입력을 위해; 주로 출력 스타일을 결정하고 모호성을 해결하려면
특수 값 'current', 'infinity'및`-infinity '입니다 제공. `Infinity '는 다른 유효한 것보다 늦게 시간을 지정합니다 시간,`-infinity '는 다른 유효한 것보다 일찍 시간을 지정합니다. 시간. `현재 '는 현재 시간이되어야 함을 나타냅니다 이 값이 계산에 나타날 때마다 대체됩니다. 그만큼 문자열`now ',`오늘',`어제 ','내일 '및`epoch'가 될 수 있습니다 시간 값을 지정하는 데 사용됩니다. '지금'은 현재 거래를 의미합니다 시간은 현재 시간이 즉시 대체되었습니다. `epoch '는 1970 년 1 월 1 일 00:00:00을 의미합니다 Gmt.
표 8-11. Postgres 날짜/시간 특별 상수
Constant | 설명 |
---|---|
현재 | 현재 거래 시간, 연기 |
epoch | 1970-01-01 00 : 00 : 00+00 (unix 시스템 스포츠 토토 결과 제로) |
Infinity | 다른 유효한 것보다 후반 타임스 |
-infinity | 다른 유효한 것보다 초기 타임스 |
Invalid | 불법 입력 |
now | 현재 거래 시간 |
오늘 | 오늘 자정 |
내일 | 내일 자정 |
어제 | 어제 자정 |
일반 사용 날짜 및 시간은 광범위한 스타일을 사용하여 입력됩니다. 등방성, SQL 호환, 전통적인 Postgres를 포함합니다 (참조 "절대 시간"에 관한 섹션) 및 기타 날짜의 순열 및 시간. 출력 스타일은 등방성, SQL 호환 가능 또는 OR 일 수 있습니다 기본 포스트 그르, 기본 설정은 Postgres v6.0.
DateTime은 다음 구문을 사용하여 지정됩니다.
연말 월간 [시간 : 분 : 두 번째] [AD, BC] [TimeZone] yearmonthday [시간 : 분 : 두 번째] [AD, BC] [TimeZone] 월 일 [시간 : 분 : 2 세] 년 [AD, BC] [TimeZone] 어디 연도는 기원전 4013 년입니다 달은 1 월, 2 월, ..., 12 월 또는 1, 2, ..., 12입니다. 하루는 1, 2, ..., 31입니다 시간은 00, 02, ..., 23입니다 분은 00, 01, ..., 59입니다 두 번째는 00, 01, ..., 59입니다 (도약의 경우 60) Timezone은 3 자 또는 GMT에 ISO 오프셋입니다
유효한 날짜는 11 월 13 일 00:00:00 4013 BC GMT에서 미래. Timezones는 세 문자입니다 (예 : "GMT"또는 "PST") 또는 ISO 호환 오프셋에 GMT (예 : "-08"또는 "-08 : 00" 태평양 표준 시간). 날짜는 그리니치에 내부적으로 저장됩니다 평균 시간. 입력 및 출력 루틴은 시간을 로컬로 변환합니다 서버의 시간대.
일반 사용 시간 범위는 광범위한 구문을 사용하여 입력됩니다. 등방성, SQL 호환, 전통적인 Postgres를 포함합니다 (참조 "상대 시간"에 관한 섹션) 및 기타 시간 범위의 순열. 출력 형식은 ISO 호환, SQL 호환 가능 또는 OR 일 수 있습니다 기본적으로 설정된 전통적인 우편둥이 Postgres 호환. 몇 달과 몇 년은 "정 성적"시간입니다 간격, 다른 "정량적"과 별도로 저장됩니다. 일 또는 시간과 같은 시간 간격. 날짜 산술의 경우 질적 시간 단위는 관련 날짜 또는 시간.
시간 범위는 다음 구문으로 지정됩니다 :
수량 단위 [수량 단위 ...] [방향] @ 수량 단위 [방향] 어디 수량은 ...,`-1 ',`0',`1 ',`2', ... 단위는 '두 번째',`minute ','hour ',`day',`주 ','월 ','달 ',`year', '10 년', '세기', 밀레니엄 '또는이 단위의 약어 또는 복수. 방향은 '전'입니다.
절대 시간 (Abstime)은 제한된 범위 (+/- 68 년)이며 제한-정밀 (1 초) 날짜 데이터 유형. DateTime 일 수 있습니다 선호하는 것은 더 큰 범위를 다루기 때문에 더 큰 범위를 다루기 때문입니다 정도.
절대 시간은 다음 구문을 사용하여 지정됩니다 :
Month Day [시간 : 분 : 두 번째] [TimeZone] 어디 달은 1 월, 2 월, ..., 12 월입니다 하루는 1, 2, ..., 31입니다 시간은 01, 02, ..., 24입니다 분은 00, 01, ..., 59입니다 두 번째는 00, 01, ..., 59입니다 연도는 1901, 1902, ..., 2038입니다.
유효한 날짜는 12 월 13 일 20:45:53 1901 GMT ~ 1 월 19 일 03:14:04 2038 Gmt. 버전 3.0 기준으로 Times는 더 이상 읽고 쓰여지지 않습니다. 그리니치 평균 시간 사용; 입력 및 출력 루틴은 기본값으로 표시됩니다 현지 시간대. DateTime에 허용되는 모든 특수 값은 다음과 같습니다 또한 "절대 시간"을 허용했습니다.
상대 시간 Reltime은 제한 범위 (+/- 68 년)이며 제한-정밀 (1 초) 시간 범위 데이터 유형. 타임 스팬이되어야합니다 선호, 더 큰 정밀도로 더 큰 범위를 다루기 때문에 더 중요한 것은 상대 단위를 구별 할 수 있습니다 (달과 년) 및 정량 단위 (일, 시간 등). 대신, Reltime은 몇 달 동안 정확히 30 일이되도록 강요해야하므로 시간 산술이 항상 예상대로 작동하지는 않습니다. 예를 들어 추가 오늘날의 1 년 연도는 오늘의 날짜 1을 생산하지 않습니다. 지금부터 1 년이 지났지 만 오늘부터 360 일 날짜.
Reltime은 다른 시간과의 입력 및 출력 루틴을 공유합니다. 스팬 유형. Timespan의 섹션은 이것을보다 자세히 다룹니다.
이것은 현재 긴밀한 절대 시간입니다 삼각 데이터 유형과 비슷합니다. 일반 입력 파서를 공유합니다 다른 날짜/스포츠 토토 결과 유형으로. 향후 릴리스에서는이 유형이 릴리스됩니다 DateTime 유형의 기능을 흡수하고 SQL92 준수.
타임 스탬프는 동일한 구문을 사용하여 지정됩니다 DateTime.
간격은 현재에 매핑되는 SQL92 데이터 유형입니다. TimesSpan Postgres 데이터 유형.
시간 범위는 다음과 같이 지정됩니다.
[ 'Abstime' 'Abstime']]] 어디 Abstime은 절대 시간 형식의 시간입니다.'current', 'infinity'및와 같은 특수 삼각 값 `-infinity '를 사용할 수 있습니다.
이전 | 홈 | 다음 |
문자 유형 | up | 부울 유형 |