이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 8.5. 날짜/토토 꽁 머니 유형버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

8.5. 날짜/롤 토토 유형

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사용되는 정밀 유형이 낮습니다

8.5.1. 날짜/롤 토토 입력

날짜 및 롤 토토 입력은 거의 모든 합리적으로 허용됩니다.SQL-전통적, 전통적인Postgres및 기타. 일부 형식의 경우Datestyle매개 변수 tomdy선택합니다dmytoYMD연말 해석을 선택하려면

PostgreSQL더 유연합니다SQL표준 요구 사항. 보다부록 B정확한 구문 분석

날짜 또는 롤 토토 문자 그대로 입력이 필요하다는 것을 기억하십시오.섹션자세한 내용은SQL다음 구문이 필요합니다

Type[(p)] 'value'

여기서p선택 사항입니다Time, 타임 스탬프간격유형. 허용 값은입니다

8.5.1.1.

테이블에 대한 가능한 입력을 보여줍니다날짜타입.

표 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 년

8.5.1.2.

롤 토토 유형은입니다.롤 토토 [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롤 토토 영역을 지정하는 방법에 대한 자세한 내용.

8.5.1.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현지 롤 토토. 다른롤 토토대에서.

8.5.1.4.

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 기능이며아님인식

8.5.2. 날짜/롤 토토 출력

날짜/롤 토토 유형의 출력 형식은 하나로 설정할 수 있습니다.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)도 사용할 수 있습니다

8.5.3. 롤 토토대

롤 토토대 및 롤 토토대 규칙은 영향을받습니다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클라이언트롤 토토대 설정명령으로

8.5.4. 간격 입력

간격값을 사용하여 작성할 수 있습니다

[@] 수량 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로 시작해야합니다.PT테이블. 장치는 생략 될 수 있으며T. 특히의 의미M그것이 이전인지 여부에 따라 다릅니다T.

표 8-16. ISO 8601 간격 단위

약어 의미
Y Years
M 달 (날짜 부분)
W
D days
H 롤 토토
M 분 (롤 토토 부분)
S

대체 형식 :

P [ --days ] [ T 롤 토토:mings: ]

문자열은 시작해야합니다P및 aT날짜와 롤 토토 부분을 분리합니다

a에 상수를 작성할 때필드사양 또는 할당 할 때필드사양, 해석필드. 예를 들어간격 '1'년1 년으로 읽히고간격 '1'1 초를 의미합니다. 또한,"오른쪽으로"필드사양이 조용합니다간격 '1결과를 떨어 뜨립니다

에 따르면SQL표준 간격 값의 모든 필드는 동일해야합니다.'-1 2:03:04'두 날과 모두에 적용됩니다PostgreSQL필드를 가질 수 있습니다IntervalStyle로 설정되었습니다sql_standard그러면 선행 표시가 고려됩니다PostgreSQL해석이 사용됩니다. 에게

내부간격값이 저장됩니다타임 스탬프뺄셈, 이것Justify_DaysandJustify_hours조정할 수 있습니다

장황한 입력 형식 및 일부 분야에서'1.5 주'또는'01 : 02 : 03.45 '. 이러한 입력은'1.5 개월'1 개월이됩니다

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

표 8-17. 간격 입력

example 설명
1-2 44676_44712
3 4:05:06 SQL 표준 형식 : 3 일 4 롤 토토 5 분 6
1 년 2 개월 3 일 4 롤 토토 5 분 6 전통적인 Postgres 형식 : 1 년 2 개월 3 일
P1Y2M3DT4H5M6S ISO 8601"형식: 위와 같은 의미
P0001-02-03T04 : 05 : 06 ISO 8601"대안: 위와 같은 의미

8.5.5. 간격 출력

간격 유형의 출력 형식은 중 하나로 설정할 수 있습니다.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 절에 설명되어 있습니다

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

스타일 사양 연말 간격 주간 간격 혼합 간격
sql_standard 1-2 3 4:05:06 -1-2 +3 -4 : 05 : 06
Postgres 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

8.5.6. 내부

PostgreSQLJulian을 사용합니다

19 세기 이전의 날짜 규칙