9.9. 날짜/와이즈 토토 기능 및 운영자#

표 9.33와이즈 토토/와이즈 토토 값 처리에 사용 가능한 기능이 표시되며 다음 하위 섹션에 세부 사항이 나타납니다.표 9.32기본 산술 연산자의 동작을 보여줍니다 (+, *등). 함수 서식에 대해서는를 참조하십시오.PostgreSQL : 문서 : 17 : 9.8. 데이터 유형 와이즈 토토 사이트 와이즈 토토 사이트 기능. 날짜/와이즈 토토 데이터 유형에 대한 배경 정보에 익숙해야합니다.PostgreSQL : 문서 : 17 : 8.5. 날짜/사설 토토 유형.

또한, 일반적인 비교 연산자표 9.1날짜/와이즈 토토 유형에 사용할 수 있습니다. 날짜 및 타임 스탬프 (와이즈 토토대가 있거나없는)는 모두 비슷하지만 와이즈 토토 (와이즈 토토대가 있거나없는)은 동일한 데이터 유형의 다른 값과 만 비교할 수 있습니다.TimeZone구성 매개 변수이며 후자의 값 (이미 내부적으로 UTC에있는)과 비교하기 위해 UTC로 회전합니다. 마찬가지로 와이즈 토토 값은에서 자정을 나타내는 것으로 가정합니다.TimeZone타임 스탬프와 비교할 때 영역.

아래에 설명 된 모든 기능 및 연산자는Time또는타임 스탬프입력은 실제로 두 가지 변형으로 제공됩니다.와이즈 토토대가있는 와이즈 토토또는와이즈 토토대가있는 타임 스탬프그리고 가져가는 것이와이즈 토토대가없는 와이즈 토토또는와이즈 토토대가없는 타임 스탬프. 간결하게, 이러한 변종은 별도로 표시되지 않습니다.+and*운영자는 정류 쌍으로 제공됩니다 (예 : 둘 다와이즈 토토 + IntegerandInteger + 와이즈 토토); 우리는 각 쌍 중 하나만 보여줍니다.

표 9.32. 와이즈 토토/와이즈 토토 운영자

운영자

설명

예제

와이즈 토토 + Integer와이즈 토토

와이즈 토토에 며칠 더 추가

와이즈 토토 '2001-09-28' + 72001-10-05

와이즈 토토 + 간격타임 스탬프

와이즈 토토 간격 추가

와이즈 토토 '2001-09-28' + 간격 '1 와이즈 토토'2001-09-28 01:00:00

와이즈 토토 + Time타임 스탬프

와이즈 토토에 와이즈 토토 추가

와이즈 토토 '2001-09-28' + 와이즈 토토 '03 : 00 '2001-09-28 03:00:00

간격 + 간격간격

간격 추가

간격 '1 일' + 간격 '1 와이즈 토토'1 일 01:00:00

타임 스탬프 + 간격타임 스탬프

타임 스탬프에 간격 추가

타임 스탬프 '2001-09-28 01:00' + 간격 '23 와이즈 토토 '2001-09-29 00:00:00

Time + 간격Time

와이즈 토토 간격 추가

Time '01 : 00 ' + 간격'3 와이즈 토토 '04 : 00 : 00

- 간격간격

간격을 부정

- 간격 '23 와이즈 토토 '-23 : 00 : 00

와이즈 토토 - 와이즈 토토Integer

와이즈 토토를 빼서 경과 한 일 수를 생성

와이즈 토토 '2001-10-01'-와이즈 토토 '2001-09-28'3

와이즈 토토 - Integer와이즈 토토

와이즈 토토부터 며칠을 빼십시오

와이즈 토토 '2001-10-01'-72001-09-24

와이즈 토토 - 간격타임 스탬프

와이즈 토토부터 간격을 빼

와이즈 토토 '2001-09-28'-간격 '1 와이즈 토토'2001-09-27 23:00:00

Time - Time간격

suptract times

Time '05 : 00 '-Time '03 : 00'02 : 00 : 00

Time - 간격Time

와이즈 토토부터 간격을 빼

Time '05 : 00 ' - 간격'2 와이즈 토토 '03 : 00 : 00

타임 스탬프 - 간격타임 스탬프

타임 스탬프에서 간격을 빼

Timestamp '2001-09-28 23:00'-간격 '23 와이즈 토토 '2001-09-28 00:00:00

간격 - 간격간격

구간 빼기

간격 '1 일' - 간격 '1 와이즈 토토'1 일 -01 : 00 : 00

타임 스탬프 - 타임 스탬프간격

타임 스탬프를 빼냅니다 (24 와이즈 토토 간격을 며칠로 변환하는 것과 비슷합니다Justify_hours ())

타임 스탬프 '2001-09-29 03:00'-Stimestamp '2001-07-27 12:00'63 일 15:00:00

간격 * 이중 정밀간격

스칼라로 간격을 곱합니다

간격 '1 초' * 90000 : 15 : 00

간격 '1 일' * 2121 일

간격 '1 와이즈 토토' * 3.503 : 30 : 00

간격 / 이중 정밀간격

간격을 스칼라로 나눕니다

간격 '1 와이즈 토토' / 1.500 : 40 : 00


표 9.33. 와이즈 토토/와이즈 토토 기능

기능

설명

예제

Age ( 타임 스탬프, 타임 스탬프) →간격

인수를 빼고 aSymbolic며칠이 아닌 몇 년과 몇 달을 사용하는 결과

Age (Timestamp '2001-04-10', Timestamp '1957-06-13')43 세 9 몬 몬 27 일

Age ( 타임 스탬프) →간격

|current_date(자정에)

Age (Timestamp '1957-06-13')62 년 6 몬콘 10 일

clock_timestamp() →와이즈 토토대가있는 타임 스탬프

현재 와이즈 토토 및 와이즈 토토 (명령문 실행 중 변경); 보다섹션 9.9.5

clock_timestamp ()2019-12-23 14 : 39 : 53.662522-05

current_date와이즈 토토

현재 와이즈 토토; 보다섹션 9.9.5

current_date2019-12-23

current_time와이즈 토토대가있는 와이즈 토토

현재 와이즈 토토; 보다섹션 9.9.5

current_time14 : 39 : 53.662522-05

current_time ( Integer) →와이즈 토토대가있는 와이즈 토토

정밀도가 제한된 현재 와이즈 토토; 보다섹션 9.9.5

current_time (2)14 : 39 : 53.66-05

current_timestamp와이즈 토토대가있는 타임 스탬프

현재 와이즈 토토 및 와이즈 토토 (현재 거래 시작); 보다섹션 9.9.5

current_timestamp2019-12-23 14 : 39 : 53.662522-05

current_timestamp ( Integer) →와이즈 토토대가있는 타임 스탬프

현재 와이즈 토토와 와이즈 토토 (현재 트랜잭션 시작), 정밀도가 제한되어 있습니다. 보다섹션 9.9.5

current_timestamp (0)2019-12-23 14 : 39 : 53-05

date_add ( 와이즈 토토대가있는 타임 스탬프, 간격 [, 텍스트]) →와이즈 토토대가있는 타임 스탬프

추가간격to a와이즈 토토대가있는 타임 스탬프, 세 번째 인수에 의해 지명 된 와이즈 토토대 또는 현재의 와이즈 토토 구역에 따른 계산 와이즈 토토 및 일광 절편 조정 조정.TimeZone생략 된 경우 설정. 두 가지 인수가있는 양식은와 같습니다.와이즈 토토대가있는 타임 스탬프 + 간격운영자.

date_add ( '2021-10-31 00 : 00 : 00 : 00+02':: timestamptz, '1 일':: 간격, '유럽/바르샤바')2021-10-31 23 : 00 : 00+00

date_bin ( 간격, 타임 스탬프, 타임 스탬프) →타임 스탬프

지정된 원점과 정렬 된 지정된 간격으로의 빈 입력; 보다섹션 9.9.3

date_bin ('15 분 ', 타임 스탬프'2001-02-16 20:38:40 ', 타임 스탬프'2001-02-16 20:05:00 ')2001-02-16 20:35:00

date_part ( 텍스트, 타임 스탬프) →이중 정밀

타임 스탬프 서브 필드 얻기 (추출물); 보다섹션 9.9.1

date_part ( '와이즈 토토', 타임 스탬프 '2001-02-16 20:38:40')20

date_part ( 텍스트, 간격) →이중 정밀

간격 서브 필드 받기 (추출물); 보다섹션 9.9.1

date_part ( 'Month', 간격 '2 년 3 개월')3

​​date_subtract ( 와이즈 토토대가있는 타임 스탬프, 간격 [, 텍스트]) →와이즈 토토대가있는 타임 스탬프

SUPTRANT A간격a와이즈 토토대가있는 타임 스탬프, 세 번째 인수에 의해 지명 된 와이즈 토토대 또는 현재의 와이즈 토토 구역에 따른 계산 와이즈 토토 및 일광 절편 조정 조정.TimeZone생략 된 경우 설정. 두 가지 인수가있는 양식은와 같습니다.와이즈 토토대가있는 타임 스탬프 - 간격운영자.

date_subtract ( '2021-11-01 00 : 00 : 00 : 00+01':: Timestamptz, '1 일':: 간격, '유럽/바르샤바')2021-10-30 22 : 00 : 00+00

date_trunc ( 텍스트, 타임 스탬프) →타임 스탬프

지정된 정밀도로 잘린다; 보다섹션 9.9.2

date_trunc ( '와이즈 토토', 타임 스탬프 '2001-02-16 20:38:40')2001-02-16 20:00:00

date_trunc ( 텍스트, 와이즈 토토대가있는 타임 스탬프, 텍스트) →와이즈 토토대가있는 타임 스탬프

지정된 와이즈 토토대에서 지정된 정밀도로 잘라냅니다. 보다섹션 9.9.2

date_trunc ( 'day', timestamptz '2001-02-16 20 : 38 : 40+00', 'Australia/Sydney')2001-02-16 13 : 00 : 00+00

date_trunc ( 텍스트, 간격) →간격

지정된 정밀도로 잘린다; 보다섹션 9.9.2

date_trunc ( '와이즈 토토', 간격 '2 일 3 와이즈 토토 40 분')2 일 03:00:00

추출물 ( 필드 From 타임 스탬프) →숫자

타임 스탬프 서브 필드를 얻으십시오. 보다섹션 9.9.1

Extract (Timestamp '2001-02-16 20:38:40')20

추출물 ( 필드 From 간격) →숫자

간격 서브 필드 얻기; 보다섹션 9.9.1

추출물 (매월 2 년 3 개월 ')3

Isfinite ( 와이즈 토토) →부울

유한 와이즈 토토 테스트 (+/- Infinity)

Isfinite (와이즈 토토 '2001-02-16')true

Isfinite ( 타임 스탬프) →부울

유한 타임 스탬프 (+/- 인피니티가 아님)에 대한 테스트

Isfinite (Timestamp 'Infinity')거짓

Isfinite ( 간격) →부울

유한 간격 테스트 (+/- 인피니티가 아님)

Isfinite (간격 '4 와이즈 토토')true

Justify_Days ( 간격) →간격

30 일 기간을 몇 개월로 변환하는 간격 조정

Justify_days (간격 '1 년 65 일')1 년 2 월 5 일

Justify_hours ( 간격) →간격

간격 조정, 24 와이즈 토토 기간을 일로 변환

Justify_hours (간격 '50 와이즈 토토 10 분 ')2 일 02:10:00

Justify_Interval ( 간격) →간격

사용 간격 조정Justify_DaysandJustify_hours, 추가 부호 조정

Justify_Interval (간격 '1 월 1 와이즈 토토')29 일 23:00:00

LocalTimeTime

현재 와이즈 토토; 보다섹션 9.9.5

LocalTime14 : 39 : 53.662522

LocalTime ( Integer) →Time

정밀도가 제한된 현재 와이즈 토토; 보다섹션 9.9.5

LocalTime (0)14 : 39 : 53

LocalTimestamp타임 스탬프

현재 와이즈 토토 및 와이즈 토토 (현재 거래 시작); 보다섹션 9.9.5

LocalTimestamp2019-12-23 14 : 39 : 53.662522

LocalTimestamp ( Integer) →타임 스탬프

현재 와이즈 토토와 와이즈 토토 (현재 트랜잭션 시작), 정밀도가 제한되어 있습니다. 보다섹션 9.9.5

LocalTimestamp (2)2019-12-23 14 : 39 : 53.66

make_date ( int, Month int, day int) →와이즈 토토

연도, 월 및 주간 필드에서 와이즈 토토를 만듭니다 (부정적인 해는 BC를 나타냅니다)

make_date (2013, 7, 15)2013-07-15

make_interval([ int [, 개월 int [, int [, Days int [, 와이즈 토토 int [, mins int [, SECS 이중 정밀 ]]]]]]]) →간격

몇 년, 몇 달, 몇 주, 일, 와이즈 토토, 몇 분 및 초 필드에서 간격을 만듭니다.

make_interval (days => 10)10 일

make_time ( Hour int, Min int, SEC 이중 정밀) →Time

와이즈 토토, 분 및 초 필드에서 와이즈 토토을 만듭니다

make_time (8, 15, 23.5)08 : 15 : 23.5

make_timestamp ( int, Month int, day int, Hour int, Min int, SEC 이중 정밀) →타임 스탬프

연도, 월, 주, 와이즈 토토, 와이즈 토토, 분 및 초 필드에서 타임 스탬프 생성 (부정적인 해 BC)

make_timestamp (2013, 7, 15, 8, 15, 23.5)2013-07-15 08 : 15 : 23.5

make_timestamptz ( int, Month int, day int, Hour int, Min int, SEC 이중 정밀 [, TimeZone 텍스트]) →와이즈 토토대가있는 타임 스탬프

연도, 월, 일, 와이즈 토토, 와이즈 토토, 분 및 초 필드에서 와이즈 토토대를 사용하여 타임 스탬프를 만듭니다 (부정적인 해는 BC를 나타냅니다). 만약에TimeZone지정되지 않았으며 현재 와이즈 토토대가 사용됩니다. 예제는 세션 와이즈 토토대가라고 가정합니다.유럽/런던

make_timestamptz (2013, 7, 15, 8, 15, 23.5)2013-07-15 08 : 15 : 23.5+01

make_timestamptz (2013, 7, 15, 8, 15, 23.5, 'America/New_York')2013-07-15 13 : 15 : 23.5+01

now() →와이즈 토토대가있는 타임 스탬프

현재 와이즈 토토 및 와이즈 토토 (현재 거래 시작); 보다섹션 9.9.5

now ()2019-12-23 14 : 39 : 53.662522-05

station_timestamp() →와이즈 토토대가있는 타임 스탬프

현재 와이즈 토토 및 와이즈 토토 (현재 문의 시작); 보다섹션 9.9.5

station_timestamp ()2019-12-23 14 : 39 : 53.662522-05

Timeofday() →텍스트

현재 와이즈 토토 및 와이즈 토토 (keeclock_timestamp하지만텍스트String); 보다섹션 9.9.5

TimeOfday ()MON 12 월 23 일 14 : 39 : 53.662522 2019 EST

transaction_timestamp() →와이즈 토토대가있는 타임 스탬프

현재 와이즈 토토 및 와이즈 토토 (현재 거래 시작); 보다섹션 9.9.5

transaction_timestamp ()2019-12-23 14 : 39 : 53.662522-05

TO_TIMESTAMP ( 이중 정밀) →와이즈 토토대가있는 타임 스탬프

Unix Epoch 변환 (1970-01-01 00 : 00 : 00 : 00+00 이후의 초)

TO_TIMESTAMP (1284352323)2010-09-13 04 : 32 : 03+00


이러한 함수 외에도 SQL오버랩운영자가 지원됩니다 :

(start1, end1) 중첩 (start2, end2)start1, 길이 1) 중첩 (start2, 길이 2)

이 표현식은 두 개의 와이즈 토토 (종료점으로 정의)이 겹치지 않으면 겹치지 않을 때 거짓이 될 때 사실을 산출합니다. 종말점은 와이즈 토토, 와이즈 토토 또는 타임 스탬프 쌍으로 지정할 수 있습니다.오버랩쌍의 초기 값을 시작으로 자동으로 가져옵니다. 각 기간은 하프 오픈 간격을 나타내는 것으로 간주됩니다시작 <= Time < END,시작andEND동일하게 해당 단일 와이즈 토토을 나타냅니다. 예를 들어, 종말점 만있는 두 가지 기간은 겹치지 않는다는 것을 의미합니다.

선택 ( '2001-02-16', 와이즈 토토 '2001-12-21') 중첩결과 :true선택 ( '2001-02-16', '100 일') 중첩결과 :거짓선택 (와이즈 토토 '2001-10-29', 와이즈 토토 '2001-10-30')은 중복됩니다결과 :거짓선택 (와이즈 토토 '2001-10-30', 와이즈 토토 '2001-10-30') 중첩결과 :true

추가 할 때간격값 (또는 값을 빼기간격값에서) a타임 스탬프또는와이즈 토토대가있는 타임 스탬프가치, 달, 일 및 마이크로 초 필드의간격값은 차례로 처리됩니다. 첫째, 0 개월이 아닌 현장 현장은 표시된 달의 와이즈 토토을 표시하거나 줄어들어 새 달의 끝이 지나지 않는 한, 그 달의 마지막 날은 사용됩니다.와이즈 토토대가있는 타임 스탬프DST를 인식하는 와이즈 토토대의 값, 이는 추가 또는 빼기 (say)을 의미합니다.간격 '1 일'반드시 추가 또는 빼기와 동일한 결과를 얻을 수는 없습니다간격 '24 와이즈 토토 '. 예를 들어, 세션 와이즈 토토대가로 설정된 상태에서America/Denver:

와이즈 토토대가있는 타임 스탬프를 선택하십시오 '2005-04-02 12 : 00 : 00-07' + 간격 '1 일';결과 :2005-04-03 12 : 00 : 00-06와이즈 토토대가있는 타임 스탬프를 선택하십시오 '2005-04-02 12 : 00 : 00-07' + 간격 '24 와이즈 토토 ';결과 :2005-04-03 13 : 00 : 00-06

이것은 일광 절약 와이즈 토토의 변화로 인해 한 와이즈 토토이 건너 웠기 때문에2005-04-03 02:00:00와이즈 토토대에서America/Denver.

참고에 모호성이있을 수 있습니다.개월필드에 의해 반품Age다른 달이 다르기 때문에 일수가 다르기 때문입니다.PostgreSQL의 접근 방식은 부분 달을 계산할 때 두 와이즈 토토 이전의 월을 사용합니다. 예를 들어,Age ( '2004-06-01', '2004-04-30')4 월을 사용하여 수율1 월 1 일, May를 사용하는 동안1 월 2 일5 월은 31 일이므로 4 월은 30 일만 있습니다.

와이즈 토토 및 타임 스탬프의 뺄셈도 복잡 할 수 있습니다. 뺄셈을 수행하는 개념적으로 간단한 방법 중 하나는 각 값을 사용하여 각 값을 여러 초로 변환하는 것입니다.추출물 (Epoch from ...), 결과를 빼십시오. 이것은의 수를 생성합니다두 값 사이. 이는 매월 일수, 와이즈 토토대 변경 및 일광 절약 와이즈 토토 조정에 맞게 조정됩니다.-운영자는 값 사이의 일 (24 와이즈 토토)과 와이즈 토토/분/초를 반환하여 동일한 조정을합니다. 그만큼Age함수는 연도, 몇 달, 일, 와이즈 토토/분/초를 반환하여 필드 별 뺄셈을 수행 한 다음 음의 필드 값을 조정합니다. 다음 쿼리는 이러한 접근법의 차이점을 보여줍니다.TimeZone = 'US/Eastern'; 사용 된 두 와이즈 토토 사이에 일광 절약 와이즈 토토 변경이 있습니다.

추출을 선택하십시오 (Timestamptz의 2013-07-01 12:00:00 ')-결과 :10537200.000000select (timestamptz의 2013-07-01 12:00:00 ')-추출물 (Epoch)-결과 :121.9583333333333333TimesTamptz '2013-07-01 12:00:00'-TimesTamptz '2013-03-01 12:00:00'; 선택결과 :121 일 23:00:00연령 선택 (Timestamptz '2013-07-01 12:00:00', Timestamptz '2013-03-01 12:00:00');결과 :4 Mons

9.9.1. 추출물, date_part #

Extract (필드From소스)

the추출물함수는 와이즈 토토/와이즈 토토 값에서 해 또는 와이즈 토토과 같은 서브 필드를 검색합니다.소스유형의 값 표현식이어야합니다타임 스탬프, 와이즈 토토, Time또는간격. (타임 스탬프와 와이즈 토토은 와이즈 토토대가 있거나없는 와이즈 토토에있을 수 있습니다.)필드는 소스 값에서 추출 할 필드를 선택하는 식별자 또는 문자열입니다. 모든 입력 데이터 유형에 모든 필드가 유효하지는 않습니다.와이즈 토토, 하루 이상의 필드는 A에서 추출 할 수 없습니다Time. 그만큼추출물함수 유형 값을 반환숫자.

다음은 유효한 필드 이름입니다 :

Century

세기; 을 위한간격값, 연도 필드는 100으로 나눈

추출을 선택하십시오 (Timestamp '2000-12-16 12:21:13');결과 :20추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :21추출을 선택하십시오 (Century From Date '0001-01-01 AD');결과 :1Extract (Century From Date '0001-12-31 BC');결과 :-1추출을 선택하십시오 (Century From Interval '2001 년');결과 :20
day

월의 날 (1-31); 을 위한간격값, 일수

추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :16추출을 선택하십시오 (간격 '40 일 1 분 ');결과 :40
10 년

연도 필드는 10으로 나눈

추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :200
dow

일요일과 같은 요일 (0) ~ 토요일 (6)

추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :5

추출물의 날의 날의 날은의 번호와 다릅니다.to_char (..., 'd')함수.

doy

일년의 날 (1–365/366)

추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :47
epoch

for와이즈 토토대가있는 타임 스탬프값, 1970-01-01 00:00:00 이후의 초 수 을 위한와이즈 토토and타임 스탬프값, 와이즈 토토대 또는 일광 절약 규칙에 관계없이 1970-01-01 00:00:00 이후의 명목상 초의 명목 수; 을 위한간격값, 간격의 총 초 수

추출을 선택하십시오 (와이즈 토토대가있는 타임 스탬프에서 에포크 '2001-02-16 20 : 38 : 40.12-08');결과 :982384720.120000추출을 선택하십시오 (Timestamp '2001-02-16 20 : 38 : 40.12');결과 :982355920.120000추출을 선택하십시오 (Epoch from interval '5 Days 3 와이즈 토토');결과 :442800.000000

에포크 값을 A로 다시 변환 할 수 있습니다와이즈 토토대가있는 타임 스탬프withTO_TIMESTAMP:

to_timestamp (982384720.12); 선택결과 :2001-02-17 04 : 38 : 40.12+00

적용에주의하십시오TO_TIMESTAMPa에서와이즈 토토또는타임 스탬프값은 오해의 소지가있는 결과를 낳을 수 있습니다. 결과는 UTC에서 원래 값이 주어 졌다고 효과적으로 가정 할 것입니다..

Hour

와이즈 토토 필드 (타임 스탬프의 0–23, 구간이 무제한)

추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :20
ISODOW

월요일과 같은 요일 (1) ~ 일요일 (7)

Extract (Timestamp의 Isodow '2001-02-18 20:38:40');결과 :7

이것은 동일합니다dow일요일을 제외하고. 이것은와 일치합니다.ISO8601 주 금주의 날.

Isoyear

theISO8601 주일이 와이즈 토토가 떨어지는 연도

Extract (Isoyear from Date '2006-01-01');결과 :2005Extract (Isoyear From Date '2006-01-02');결과 :2006

ISO8601 주 번호 연도는 1 월 4 일 월요일부터 시작되므로 1 월 4 일 또는 12 월 말에ISO연도는 Gregorian 년과 다를 수 있습니다. 참조Week자세한 내용은 필드

줄리안

the줄리안 와이즈 토토와이즈 토토 또는 타임 스탬프에 해당합니다. 로컬 자정이 아닌 타임 스탬프는 분수 값을 초래합니다.섹션 B.7자세한 내용은

Extract (Julian From Date '2006-01-01');결과 :2453737Extract (Timestamp '2006-01-01 12:00'에서 Julian);결과 :2453737.50000000000000000000
마이크로 초

분수 부품을 포함한 초 필드는 1,000 000을 곱한 것; 여기에는 전체 초가 포함되어 있습니다

추출을 선택하십시오 (Time '17 : 12 : 28.5 '의 마이크로 초);결과 :28500000
밀레니엄

밀레니엄; 을 위한간격값, 연도 필드는 1000으로 나눈

추출물 선택 (Timestamp '2001-02-16 20:38:40');결과 :3Extract (Interval '2001 년')에서 밀레니엄을 선택하십시오.결과 :2

1900 년대의 몇 년은 2 천년입니다. 3 천년은 2001 년 1 월 1 일에 시작되었습니다.

milliseconds

분수 부품을 포함한 초 필드는 1000을 곱합니다. 여기에는 전체 초가 포함됩니다.

추출을 선택하십시오 (Time '17 : 12 : 28.5 '에서 밀리 초);결과 :28500.000
Minute

분 필드 (0–59)

추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :38
Month

연도 내 월 수 (1-12); 을 위한간격값, Modulo 12 (0–11)

추출을 선택하십시오 (TimeStamp '2001-02-16 20:38:40');결과 :2추출을 선택하십시오 (매월 '2 년 3 개월');결과 :3추출을 선택하십시오 (매달 간격 '2 년 13 개월');결과 :1
Quarter

와이즈 토토가있는 해 (1-4)

추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :1
Second

분수 초를 포함한 초 필드

추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :40.000000추출을 선택하십시오 (두 번째 와이즈 토토 '17 : 12 : 28.5 ');결과 :28.500000
TimeZone

몇 초 만에 측정 된 UTC에서 와이즈 토토대 오프셋. 양수 값은 UTC의 동쪽 와이즈 토토 영역, UTC 서쪽 구역에 대한 음수 값에 해당합니다.PostgreSQL도약 초가 처리되지 않기 때문에 UTC를 사용하지 않습니다.)

Timezone_hour

와이즈 토토대 오프셋의 와이즈 토토 구성 요소

Timezone_Minute

와이즈 토토대 오프셋의 미세 구성 요소

Week

의 수ISO8601 일주일의 주중. 정의에 따르면, ISO Weeks는 월요일에 시작되며 첫 주에는 그 해의 1 월 4 일이 포함됩니다.

ISO 주간 번호 시스템에서 1 월 초반 와이즈 토토는 전년도의 52 또는 53 주에 일부가 될 수 있으며 12 월 말은 내년 첫 주에 일부가 될 수 있습니다. 예를 들어,2005-01-012004 년 53 주차의 일부이며2006-01-012005 년 52 주차의 일부이며2012-12-312013 년 첫 주의 일부입니다. 사용하는 것이 좋습니다Isoyear함께 필드Week일관된 결과를 얻으려면

추출을 선택하십시오 (TimesTamp '2001-02-16 20:38:40');결과 :7

올해 필드. 없음을 명심하십시오0 AD, SO SUTCARTINGBCad연년교는 조심해야합니다.

추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :2001

처리 할 때간격값,추출물함수는 간격 출력 함수에 의해 사용되는 해석과 일치하는 필드 값을 생성합니다. 예를 들어 비정형 간격 표현으로 시작하면 놀라운 결과를 얻을 수 있습니다.

간격 '80 분 '; 선택결과 :01 : 20 : 00추출을 선택하십시오 (간격 '80 분 '에서 분에서 분);결과 :20

note

입력 값이 +/- 인피니티 인 경우추출물단조 적으로 증가하는 필드에 대한 +/- 인피니티 (.epoch, 줄리안, , Isoyear, 10 년, Century밀레니엄for타임 스탬프입력;epoch, Hour, day, , 10 년, Century밀레니엄for간격입력). 다른 필드의 경우 Null이 반환됩니다.PostgreSQL9.6 이전의 버전은 무한한 입력의 모든 경우에 0을 반환했습니다.

the추출물함수는 주로 계산 처리를위한 것입니다. 표시의 와이즈 토토/와이즈 토토 값 서식은 참조PostgreSQL : 문서 : 17 : 9.8. 데이터 유형 와이즈 토토 사이트 와이즈 토토 사이트 기능.

thedate_part함수는 전통적으로 모델링됩니다IngresSQL스탠드 함수추출물:

date_part ( '필드',소스)

여기서에 유의하십시오.필드매개 변수는 이름이 아닌 문자열 값이어야합니다. 유효한 필드 이름date_part와 동일합니다추출물. 역사적 이유로date_part함수 유형 값을 반환이중 정밀. 이로 인해 특정 용도에서 정밀도가 손실 될 수 있습니다.추출물대신 권장됩니다.

date_part를 선택하십시오 ( 'day', timestamp '2001-02-16 20:38:40');결과 :16date_part ( '와이즈 토토', 간격 '4 와이즈 토토 3 분'); 선택결과 :4

9.9.2. date_trunc #

함수date_trunc개념적으로trunc숫자에 대한 기능.

date_trunc (필드, 소스[,time_zone])

소스유형의 값 표현식입니다타임 스탬프, 와이즈 토토대가있는 타임 스탬프또는간격. (유형의 값와이즈 토토andTime자동으로 캐스트됩니다타임 스탬프또는간격,)필드입력 값을 자울 수있는 정밀도를 선택합니다. 반환 값은 마찬가지로 유형입니다.타임 스탬프, 와이즈 토토대가있는 타임 스탬프또는간격, 그리고 선택한 하나의 세트보다 덜 중요하지 않은 모든 필드가 0 (또는 요일 및 월)을 가지고 있습니다..

유효한 값필드are :

마이크로 초
milliseconds
Second
Minute
Hour
day
Week
Month
Quarter
10 년
Century
밀레니엄

입력 값이 유형 인 경우와이즈 토토대가있는 타임 스탬프, 절단은 특정 와이즈 토토대와 관련하여 수행된다. 예를 들어, 잘린day해당 구역에서 자정 인 값을 생성합니다. 기본적으로 잘린 것은 전류와 관련하여 수행됩니다TimeZone설정이지만 선택 사항time_zone다른 와이즈 토토대를 지정하기 위해 인수를 제공 할 수 있습니다. 와이즈 토토대 이름은에 설명 된 모든 방법으로 지정할 수 있습니다.섹션 8.5.3.

처리 할 때 와이즈 토토대를 지정할 수 없습니다와이즈 토토대가없는 타임 스탬프또는간격입력. 이들은 항상 액면가로 취합니다.

예제 (현지 와이즈 토토대가 가정이라고 가정합니다.America/New_York) :

date_trunc ( '와이즈 토토', 타임 스탬프 '2001-02-16 20:38:40'); 선택결과 :2001-02-16 20:00:00date_trunc ( 'year', timestamp '2001-02-16 20:38:40'); 선택결과 :2001-01-01 00:00:00date_trunc ( 'day', 와이즈 토토대가있는 타임 스탬프 '2001-02-16 20 : 38 : 40+00'); 선택결과 :2001-02-16 00 : 00 : 00-05date_trunc ( 'day', 와이즈 토토대가있는 타임 스탬프 '2001-02-16 20 : 40 : 40+00', 'Australia/Sydney');;결과 :2001-02-16 08 : 00 : 00-05date_trunc ( '와이즈 토토', 간격 '3 일 02:47:33'); 선택결과 :3 일 02:00:00

9.9.3. date_bin #

함수date_bin bins지정된 간격으로의 입력 타임 스탬프 (스트라이드) 지정된 원점과 정렬되었습니다.

date_bin (스트라이드, 소스, 원산지)

소스유형의 값 표현식입니다타임 스탬프또는와이즈 토토대가있는 타임 스탬프. (유형의 값와이즈 토토자동으로 캐스트됩니다타임 스탬프.) 스트라이드유형의 값 표현식입니다간격. 반환 값은 마찬가지로 유형입니다.타임 스탬프또는와이즈 토토대가있는 타임 스탬프소스배치.

예 :

date_bin ('15 분 ', 타임 스탬프'2020-02-11 15:44:17 ', 타임 스탬프'2001-01-01 ');;결과 :2020-02-11 15:30:00date_bin ('15 분 ', 타임 스탬프'2020-02-11 15:44:17 ', 타임 스탬프'2001-01-01 00:02:30 ');;결과 :67622_67641

전체 장치 (1 분, 1 와이즈 토토 등)의 경우 유사한 결과와 동일한 결과를 제공합니다date_trunc전화, 차이점은입니다.date_bin임의의 간격으로 잘릴 수 있습니다.

the스트라이드간격은 0보다 크고 월 이상의 단위를 포함 할 수 없어야합니다.

9.9.4. 와이즈 토토대와 지역에서 #

the와이즈 토토대에서운영자 변환 타임 스탬프없음타임 스탬프까지의 와이즈 토토대with와이즈 토토대 및와이즈 토토대가있는 와이즈 토토다른 와이즈 토토대에 대한 값.표 9.34변형을 보여줍니다.

표 9.34. 와이즈 토토대에서andAT LOCAL변형

운영자

설명

예제

와이즈 토토대가없는 타임 스탬프 와이즈 토토대에서 Zone와이즈 토토대가있는 타임 스탬프

주어진 타임 스탬프 변환없음와이즈 토토대에서 타임 스탬프with주어진 값이 지정된 와이즈 토토대에 있다고 가정하면 와이즈 토토대

타임 스탬프 '2001-02-16 20:38:40'At Time Zone 'America/Denver'2001-02-17 03 : 38 : 40+00

와이즈 토토대가없는 타임 스탬프 AT LOCAL와이즈 토토대가있는 타임 스탬프

주어진 타임 스탬프 변환없음와이즈 토토대에서 타임 스탬프with세션TimeZone와이즈 토토대로서의 값.

타임 스탬프 '2001-02-16 20:38:40'에서2001-02-17 03 : 38 : 40+00

와이즈 토토대가있는 타임 스탬프 와이즈 토토대에서 Zone와이즈 토토대가없는 타임 스탬프

주어진 타임 스탬프 변환with와이즈 토토대에서 타임 스탬프없음해당 구역에 와이즈 토토이 나타날 때 와이즈 토토대

와이즈 토토대가있는 타임 스탬프 '2001-02-16 20 : 38 : 40-05'at Time Zone 'America/Denver'2001-02-16 18:38:40

와이즈 토토대가있는 타임 스탬프 AT LOCAL와이즈 토토대가없는 타임 스탬프

주어진 타임 스탬프 변환with와이즈 토토대에서 타임 스탬프없음와이즈 토토대, 와이즈 토토이 세션의 와이즈 토토에 나타납니다TimeZone와이즈 토토대로서의 값.

와이즈 토토대가있는 타임 스탬프 '2001-02-16 20 : 38 : 40-05'에서2001-02-16 18:38:40

와이즈 토토대가있는 와이즈 토토 와이즈 토토대에서 Zone와이즈 토토대가있는 와이즈 토토

주어진 와이즈 토토 변환with새로운 와이즈 토토대로의 와이즈 토토대. 와이즈 토토가 제공되지 않으므로 이름이 지정된 대상 영역에 대한 현재 활성 UTC 오프셋을 사용합니다.

와이즈 토토대가있는 와이즈 토토 '05 : 34 : 17-05 '에서 와이즈 토토대'UTC '10 : 34 : 17+00

와이즈 토토대가있는 와이즈 토토 AT LOCAL와이즈 토토대가있는 와이즈 토토

주어진 와이즈 토토 변환with새로운 와이즈 토토대로의 와이즈 토토대. 와이즈 토토가 제공되지 않으므로 세션에 현재 활성화 된 UTC 오프셋을 사용합니다TimeZonevalue.

세션의 가정TimeZone로 설정되었습니다UTC:

와이즈 토토대가있는 와이즈 토토 '05 : 34 : 17-05 '에서10 : 34 : 17+00


이 표현에서 원하는 와이즈 토토대Zone텍스트 값으로 지정할 수 있습니다 (예 :'America/Los_angeles') 또는 간격으로 (예 :간격 '-08 : 00'). 텍스트의 경우, 와이즈 토토대 이름은에 설명 된 모든 방법으로 지정할 수 있습니다.섹션 8.5.3. 간격 케이스는 UTC에서 오프셋이 고정 된 영역에만 유용하므로 실제로는 일반적이지 않습니다.

구문AT LOCAL속기로 사용될 수 있습니다와이즈 토토대에서Local, 여기Local세션입니다TimeZonevalue.

예제 (현재를 가정TimeZone설정은America/Los_angeles) :

TimeStamp '2001-02-16 20:38:40'At Time Zone 'America/Denver'; 선택하십시오.결과 :2001-02-16 19 : 38 : 40-08Time Zone '2001-02-16 20 : 38 : 40-05'At Time Zone 'America/Denver';로 타임 스탬프를 선택하십시오.결과 :2001-02-16 18:38:40TimeStamp '2001-02-16 20:38:40'At Time Zone 'Asia/Tokyo'At Time Zone 'America/Chicago'; 선택 선택하십시오.결과 :2001-02-16 05:38:40Time Zone '2001-02-16 20 : 38 : 40-05'가있는 타임 스탬프를 선택하십시오.결과 :2001-02-16 17:38:40Time Zone '20 : 38 : 40-05 '로 와이즈 토토을 선택하십시오.결과 :17 : 38 : 40

첫 번째 예제는 와이즈 토토대가 부족한 값에 와이즈 토토대를 추가하고 현재를 사용하여 값을 표시합니다TimeZone설정. 두 번째 예제는 타임 스탬프를 와이즈 토토대 값으로 지정된 와이즈 토토대로 이동시키고 와이즈 토토대없이 값을 반환합니다.TimeZone설정. 세 번째 예제는 도쿄 와이즈 토토을 시카고 와이즈 토토으로 전환합니다.TimeZone와이즈 토토대없이 값을 설정하고 반환합니다.

다섯 번째 예는 신중한 이야기입니다. 입력 값과 관련된 와이즈 토토가 없기 때문에 세션의 현재 와이즈 토토를 사용하여 변환됩니다.'America/Los_angeles'일광 절약 와이즈 토토을 관찰합니다.

함수TimeZone(Zone, 타임 스탬프)SQL 기능 구조와 동일합니다타임 스탬프와이즈 토토대에서Zone.

함수TimeZone(Zone, Time)SQL 기능 구조와 동일합니다Time와이즈 토토대에서Zone.

함수TimeZone(타임 스탬프)SQL 기능 구조와 동일합니다타임 스탬프AT LOCAL.

함수TimeZone(Time)SQL 기능 구조와 동일합니다TimeAT LOCAL.

9.9.5. 현재 와이즈 토토/와이즈 토토#

PostgreSQL현재 와이즈 토토 및 와이즈 토토과 관련된 값을 반환하는 여러 기능을 제공합니다. 이 SQL 표준은 현재 트랜잭션의 시작 와이즈 토토에 따라 모든 반환 값을 기능합니다.

current_date정밀)정밀)정밀)정밀)

current_timeandcurrent_timestamp와이즈 토토대와 함께 값을 전달;LocalTimeandLocalTimestamp와이즈 토토대가없는 값을 전달하십시오.

current_time, current_timestamp, LocalTimeLocalTimestamp선택적으로 정밀 매개 변수를 가져갈 수있어 결과가 초 필드의 많은 분수 숫자로 반올림됩니다. 정밀 매개 변수가 없으면 결과는 사용 가능한 전체 정밀도로 제공됩니다.

일부 예 :

current_time을 선택하십시오;결과 :14 : 39 : 53.662522-05current_date; 선택결과 :2019-12-23current_timestamp; 선택결과 :2019-12-23 14 : 39 : 53.662522-05current_timestamp (2); 선택결과 :2019-12-23 14 : 39 : 53.66-05LocalTimestamp 선택 선택;결과 :2019-12-23 14 : 39 : 53.662522

이 함수는 현재 트랜잭션의 시작 와이즈 토토을 리턴하므로 거래 중에 그 값이 변경되지 않습니다. 이것은 특징으로 간주됩니다. 의도는 단일 트랜잭션이 일관된 개념을 갖도록하는 것입니다.현재와이즈 토토, 동일한 트랜잭션 내의 다중 수정이 같은 와이즈 토토 스탬프를 부여하도록합니다.

note

다른 데이터베이스 시스템이 이러한 값을 더 자주 발전시킬 수 있습니다.

PostgreSQL또한 현재 명령문의 시작 와이즈 토토을 반환하는 함수와 순간의 실제 전류 와이즈 토토을 제공합니다. 비 SQL 표준 와이즈 토토 기능의 전체 목록은 다음과 같습니다.

transaction_timestamp ()

transaction_timestamp ()current_timestamp, 그러나 반환 내용을 명확하게 반영하도록 지명되었습니다.station_timestamp ()현재 문의 시작 와이즈 토토을 반환합니다 (특히 클라이언트로부터 최신 명령 메시지를 수신하는 와이즈 토토)..station_timestamp ()andtransaction_timestamp ()트랜잭션의 첫 명령 중에 동일한 값을 반환하지만 후속 명령 중에는 다를 수 있습니다.clock_timestamp ()실제 현재 와이즈 토토을 반환하므로 단일 SQL 명령 내에서도 값이 변경됩니다.TimeOfday ()역사적입니다PostgreSQL함수. 좋다clock_timestamp (), 실제 현재 와이즈 토토을 반환하지만 형식으로텍스트a가 아닌 문자열와이즈 토토대가있는 타임 스탬프value.now ()전통적인PostgreSQL동등한transaction_timestamp ().

모든 와이즈 토토/와이즈 토토 데이터 유형은 특별한 리터럴 값도 허용now현재 와이즈 토토와 와이즈 토토을 지정하려면 (다시, 트랜잭션 시작 와이즈 토토으로 해석). 따라서 다음 세 가지 모두 동일한 결과를 반환합니다.

current_timestamp 선택;

예를 들어 a와 같이 나중에 평가할 값을 지정할 때 세 번째 양식을 사용하지 마십시오.기본값테이블 열의 조항. 시스템이 변환됩니다nowto a타임 스탬프상수가 구문 분석하자마자 기본값이 필요할 때 테이블 생성 와이즈 토토이 사용됩니다! 처음 두 가지 양식은 기본값이 사용될 때까지 평가되지 않습니다. 함수 호출이기 때문입니다.섹션 8.5.1.4.)

9.9.6. 실행 지연#

서버 프로세스의 실행을 지연시키기 위해 다음 기능을 사용할 수 있습니다.

pg_sleep (이중 정밀)간격)와이즈 토토대가있는 타임 스탬프 )

PG_SLEEP주어진 초 수가 경과 할 때까지 현재 세션의 프로세스를 잠들게합니다. 분수 초 지연을 지정할 수 있습니다.pg_sleep_for수면 와이즈 토토을 A로 지정할 수있는 편의 기능입니다.간격. pg_sleep_until는 특정 모닝 와이즈 토토이 필요한 경우 편의 기능입니다. 예를 들어:

선택 PG_SLEEP (1.5);

note

수면 간격의 효과적인 해상도는 플랫폼 별입니다. 0.01 초는 공통 값입니다.pg_sleep_until지정된 와이즈 토토에 정확히 일어나는 것을 보장하지는 않지만 더 일찍 일어나지 않을 것입니다.

경고

호출 할 때 세션이 필요 이상으로 더 많은 자물쇠를 보유하지 않도록하십시오PG_SLEEP또는 그 변형. 그렇지 않으면 다른 세션이 수면 과정을 기다려야 전체 시스템을 늦추어야 할 수도 있습니다.

정정 제출

문서에 올바른 것이 없으면 일치하지 않습니다.이 양식문서 문제를보고하려면