PostgreSQL전체를 지원합니다SQL날짜와 롤 토토표 8-9.섹션 9.9.
표 8-9. 날짜/롤 토토 유형
이름 | 스토리지 크기 | 설명 | 낮은 값 | 높은 가치 | 해상도 |
---|---|---|---|---|---|
타임 스탬프 [(p)] [롤 토토대가없는 | 8 바이트 | 날짜와 롤 토토 모두 (롤 토토대 없음) | 4713 BC | 294276 AD | 1 마이크로 초 / 14 자리 |
타임 스탬프 [(p)] with Time Zone | 8 바이트 | 롤 토토대와 롤 토토 구역이있는 날짜와 롤 토토 모두 | 4713 BC | 294276 AD | 1 마이크로 초 / 14 자리 |
날짜 | 4 바이트 | 날짜 (롤 토토 없음) | 4713 BC | 5874897 AD | 1 일 |
롤 토토 [(p)] [롤 토토대가없는 | 8 바이트 | 롤 토토의 롤 토토 (날짜 없음) | 00 : 00 : 00 | 24 : 00 : 00 | 1 마이크로 초 / 14 자리 |
롤 토토 [(p)] with Time Zone | 12 바이트 | 롤 토토대가있는 롤 토토 만 | 00 : 00 : 00 : 00+1459 | 24 : 00 : 00-1459 | 1 마이크로 초 / 14 자리 |
간격 [필드] [(p)] | 16 바이트 | 롤 토토 간격 | -178000000 년 | 178000000 년 | 1 마이크로 초 / 14 자리 |
참고 :SQL 표준은 저술을 요구합니다타임 스탬프롤 토토대가없는 타임 스탬프및PostgreSQL그 행동을 존중합니다.롤 토토대가있는 타임 스탬프.)
Time, 타임 스탬프,간격선택적 정밀도를 수락하십시오pp는 0에서 6입니다.타임 스탬프and간격타입.
참고 :언제타임 스탬프값타임 스탬프값은입니다타임 스탬프값은 OR 이전의 초처럼 저장됩니다타임 스탬프값은 사용하여 구현됩니다타임 스탬프표시된 것보다 표현 될 값
동일한 컴파일 타임 옵션은 또한를 결정합니다.Timeand간격값은 부동 소수점 번호 또는 8 바이트로 저장됩니다간격값은 크기로 정밀하게 저하됩니다
용Time유형, 허용 범위p는 8 바이트 일 때 0에서 6입니다
the간격유형에는 추가가 있습니다
연도
필드andp지정되어 있습니다.필드포함Second, 정밀도는에만 적용되므로
유형롤 토토대가있는 롤 토토정의됩니다날짜, Time, 롤 토토대가없는 타임 스탬프및롤 토토대가있는 타임 스탬프완전한 것을 제공해야합니다
유형AbstimeandReltime사용되는 정밀 유형이 낮습니다
날짜 및 롤 토토 입력은 거의 모든 합리적으로 허용됩니다.SQL-전통적, 전통적인Postgres및 기타. 일부 형식의 경우Datestyle매개 변수 tomdy선택합니다dmytoYMD연말 해석을 선택하려면
PostgreSQL더 유연합니다SQL표준 요구 사항. 보다부록 B정확한 구문 분석
날짜 또는 롤 토토 문자 그대로 입력이 필요하다는 것을 기억하십시오.섹션자세한 내용은SQL다음 구문이 필요합니다
Type[(p)] 'value'
여기서p선택 사항입니다Time, 타임 스탬프및간격유형. 허용 값은입니다
테이블에 대한 가능한 입력을 보여줍니다날짜타입.
표 8-10. 날짜 입력
example | 설명 |
---|---|
1999-01-08 | ISO 8601; 1 월 8 일 모든 모드에서 (권장 |
1999 년 1 월 8 일 | Datestyle입력 모드 |
1/8/1999 | 1 월 8 일mdy모드;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모드, |
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 1 월 8 일 | 기원전 99 년 |
롤 토토 유형은입니다.롤 토토 [p)] 롤 토토대없이and롤 토토 [(p)] with Time Zone. Time롤 토토.
이러한 유형에 대한 유효한 입력은 하루의 롤 토토으로 구성됩니다.테이블and테이블.) 입력에 롤 토토대가 지정된 경우롤 토토대가없는 롤 토토, 그것은 조용합니다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 |
20116_20130 | ISO 8601 |
04 : 05-08 : 00 | ISO 8601 |
040506-08 | ISO 8601 |
04 : 05 : 06 PST | 약어에 의해 지정된 롤 토토대 |
2003-04-12 04:05:06 | 전체 이름으로 지정된 롤 토토대 |
표 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롤 토토 영역을 지정하는 방법에 대한 자세한 내용.
타임 스탬프 유형에 대한 유효한 입력은ad또는BC.ad/BC롤 토토대 앞에 나타날 수는 있지만이
1999-01-08 04:05:06
및 :
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롤 토토대가있는 타임 스탬프,gmt). 입력 값TimeZone매개 변수이며의 오프셋을 사용하여 UTC로 변환됩니다.TimeZoneZone.
a롤 토토대가있는 타임 스탬프값은 출력입니다. 항상 UTC에서TimeZoneZone 및 표시TimeZone또는 사용롤 토토대에서구성 (참조섹션).
사이의 변환타임 스탬프없이and롤 토토이 지남에 따라 타임 스탬프일반적으로타임 스탬프값을 가져 가거나 |TimeZone현지 롤 토토. 다른롤 토토대에서.
PostgreSQL지원테이블. 값Infinityand-infinity특별히 대표됩니다now및 관련 문자열
표 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, LocalTime, LocalTimestamp. 후자 4 명은섹션.) 이들은 SQL 기능이며아님인식
날짜/롤 토토 유형의 출력 형식은 하나로 설정할 수 있습니다.SQL(잉그레스), 전통Postgres(UNIX날짜형식) 또는 독일어. 기본값은입니다ISO형식. (그만큼SQL표준이 필요합니다"SQL"출력 형식은 역사적 사고입니다.)테이블각 출력 스타일의 예를 보여줍니다. 의 출력날짜andTime유형
표 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섹션이 설정이 해석에 어떤 영향을 미치는지테이블예를 보여줍니다.
표 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 |
날짜/롤 토토 스타일은 사용자가 선택할 수 있습니다.데이터 스타일 설정명령,Datestyle매개 변수Postgres구성 파일 또는pgdatestyle서버 또는 클라이언트의 환경 변수. 서식TO_CHAR
(참조섹션 9.8)도 사용할 수 있습니다
롤 토토대 및 롤 토토대 규칙은 영향을받습니다PostgreSQL널리 사용되는 Iana를 사용합니다
PostgreSQLSQL일반적인 사용에 대한 표준 정의. 그러나SQL표준에는 홀수 믹스가 있습니다
비록날짜유형은 가질 수 없습니다Time타입 캔. 현실 세계의 롤 토토대는 의미가 거의 없습니다
기본 롤 토토대는 상수 숫자로 지정됩니다.UTC. 그것은dst경계.
이러한 어려움을 해결하려면 날짜/롤 토토을 사용하는 것이 좋습니다아님추천롤 토토대가있는 롤 토토PostgreSQL레거시 응용 프로그램 및 용SQL표준).PostgreSQL가정합니다
모든 롤 토토대 인식 날짜와 롤 토토은 내부적으로 저장됩니다UTC. 그들은 변환됩니다TimeZone구성 매개 변수에 표시되기 전에
PostgreSQL
예를 들어 풀 타임 존 이름America/New_York. 인식 된 롤 토토대PG_TIMEZONE_NAMES보기 (참조섹션 45.60). PostgreSQL
예를 들어 롤 토토대 약어PST. 그러한 사양은 단지 a를 정의합니다PG_TIMEZONE_ABBREVS보기 (참조섹션 45.59). 너TimeZone또는log_timezone롤 토토대 약어로 약어를 사용할 수 있습니다.롤 토토대에서운영자.
롤 토토대 이름과 약어 외에도PostgreSQL수락합니다std오프셋또는std오프셋dst, 여기서std구역 약어입니다.오프셋는 숫자 오프셋입니다dst는 선택적 일광 절약입니다est5edt는 아직 인정 된 영역이 아닙니다posixrules입력. 표준PostgreSQL설치,posixrules|US/Easternposixrules파일.
간단히 말해서, 이것은 약어의 차이입니다2014-06-04 12:00 America/New_York뉴욕의 정오 현지 롤 토토을 대표합니다.2014-06-04 12:00 EDT이를 지정합니다2014-06-04 12:00정오 동부 표준 롤 토토 (UTC-5)을 지정합니다.
문제를 복잡하게하기 위해 일부 관할 구역은 동일하게 사용했습니다MSK몇 년 동안 UTC+3, UTC+4 인치를 의미했습니다PostgreSQL해석EST위의 예, 그렇지 않습니다
POSIX 스타일의 롤 토토대 기능에 대해 조심해야합니다.foobar0으로 롤 토토대를 설정의지West36712_36746PostgreSQL양성 롤 토토대가 상쇄되는 ISO-8601 컨벤션을 따릅니다EastOF
모든 경우에 롤 토토대 이름과 약어가 있습니다PostgreSQL이전 버전
타임 존 이름이나 약어는 거의 연결되지 않습니다.../share/timezone/and.../share/timezonesets/의섹션 B.3).
theTimeZone구성 매개 변수를 파일에서 설정할 수 있습니다Postgres또는 다른 것18 장. 몇 가지도 있습니다
ifTimeZone에 지정되지 않았습니다Postgres또는 서버로TZ환경 변수 ASTZ그렇지 않습니다PostgreSQL, 서버localtime (). 기본 롤 토토대PostgreSQL의 알려진 롤 토토대. (이것들log_timezone,
theSQL명령롤 토토대 설정롤 토토대를 설정합니다타임 존 설정더
thePGTZ환경 변수입니다libpq클라이언트롤 토토대 설정명령으로
간격값을 사용하여 작성할 수 있습니다
[@] 수량 Unit [수량 Unit...] [방향]
여기서수량숫자입니다Unitis마이크로 초, millisecond, Second, Minute, Hour, day, 주, Month, year, 10 년, Century, Millennium, 또는방향can beAgo또는 비어 있습니다. AT 부호 (@)는 선택적 노이즈입니다. 의 양Ago모든 것을 무효화합니다IntervalStyle로 설정되었습니다postgres_verbose.
일, 롤 토토, 몇 분 및 초의 양이 될 수 있습니다'1 12:59:10'|'1 일 12 롤 토토 59 분 10 초'. 또한,'200-10'동일하게 읽습니다'200 년 10 개월'. (이것들SQL표준 및 사용됩니다IntervalStyle가 설정되었습니다sql_standard.)
간격 값은 ISO 8601 롤 토토으로도 작성할 수 있습니다."형식표준 섹션 4.4.3.2 또는의"대체 형식"섹션
P 수량 Unit [ 수량 Unit ...] [T [ 수량 Unit ...]]
문자열은 a로 시작해야합니다.P및T테이블. 장치는 생략 될 수 있으며T. 특히의 의미M그것이 이전인지 여부에 따라 다릅니다T.
대체 형식 :
P [ 년-달-days ] [ T 롤 토토:mings:초 ]
문자열은 시작해야합니다P및 aT날짜와 롤 토토 부분을 분리합니다
a에 상수를 작성할 때필드사양 또는 할당 할 때필드사양, 해석필드. 예를 들어간격 '1'년1 년으로 읽히고간격 '1'1 초를 의미합니다. 또한,"오른쪽으로"의필드사양이 조용합니다간격 '1결과를 떨어 뜨립니다
에 따르면SQL표준 간격 값의 모든 필드는 동일해야합니다.'-1 2:03:04'두 날과 모두에 적용됩니다PostgreSQL필드를 가질 수 있습니다IntervalStyle로 설정되었습니다sql_standard그러면 선행 표시가 고려됩니다PostgreSQL해석이 사용됩니다. 에게
내부간격값이 저장됩니다타임 스탬프뺄셈, 이것Justify_Days
andJustify_hours
조정할 수 있습니다
장황한 입력 형식 및 일부 분야에서'1.5 주'또는'01 : 02 : 03.45 '. 이러한 입력은'1.5 개월'1 개월이됩니다
테이블유효한 몇 가지 예를 보여줍니다간격입력.
간격 유형의 출력 형식은 중 하나로 설정할 수 있습니다.sql_standard, Postgres, postgres_verbose또는ISO_8601, 명령 사용IntervalStyle 설정. 기본값은입니다.Postgres형식.테이블각 출력 스타일의 예를 보여줍니다.
thesql_standard스타일 제작
출력Postgres스타일PostgreSQL8.4 이전에 출시 될 때Datestyle매개 변수가 설정되었습니다ISO.
출력postgres_verbose스타일은의 출력과 일치합니다.PostgreSQL8.4 이전에 출시 될 때Datestyle매개 변수가 설정되었습니다ISO출력.
출력ISO_8601스타일"형식ISO의 4.4.3.2 절에 설명되어 있습니다