이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 9.9. 날짜/와이즈 토토 결과 기능 및 운영자버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

4.8. 날짜/토토 결과 기능 및 연산자

표 4-17날짜/토토 결과 값 처리에 사용 가능한 함수가 표시됩니다.테이블 4-16기본 산술의 동작을 보여줍니다 연산자 (+, *등). 함수 서식에 대해서는를 참조하십시오.토토 핫 PostgreSQL : 문서 : 7.2 : 데이터 유형 서식 함수. 당신은해야합니다 날짜/토토 결과 데이터에 대한 배경 정보에 익숙합니다 유형 (참조PostgreSQL : 문서 : 7.2 : 날짜/토토 꽁 머니 유형).

아래에 설명 된 날짜/토토 결과 연산자는 비슷하게 행동합니다 토토 결과대와 토토 결과대가없는 유형.

표 4-16. 날짜/토토 결과 운영자

이름 example 결과
+ 타임 스탬프'2001-09-28 01:00' +간격'23 토토 결과 ' 타임 스탬프'2001-09-29 00:00 '
+ 날짜'2001-09-28' +간격'1 토토 결과' 타임 스탬프'2001-09-28 01:00 '
+ Time'01 : 00 ' +간격'3 토토 결과' Time'04 : 00 '
- 타임 스탬프'2001-09-28 23:00'-간격'23 토토 결과 ' 타임 스탬프'2001-09-28'
- 날짜'2001-09-28'-간격'1 토토 결과' 타임 스탬프'2001-09-27 23:00 '
- Time'05 : 00 ' -간격'2 토토 결과' Time'03 : 00 '
- 간격'2 토토 결과' -Time'05 : 00 ' Time'03 : 00 : 00 '
* 간격'1 토토 결과' *int'3' 간격'03 : 00 '
/ 간격'1 토토 결과' /int'3' 간격'00 : 20 '

날짜/토토 결과 함수는 아래에 요약되어 있으며 추가로 요약되어 있습니다 후속 섹션의 세부 사항

표 4-17. 날짜/토토 결과 기능

이름 반환 유형 설명 example 결과
Age(타임 스탬프) 간격 오늘부터 빼기 나이 (타임 스탬프 '1957-06-13') 43 년 8 몬 몬 3 일
Age(타임 스탬프, 타임 스탬프) 간격 인수 빼기 Age ( '2001-04-10', 타임 스탬프 '1957-06-13') 43 세 9 몬 몬 27 일
current_date 날짜 오늘 날짜; 보다아래
current_time Time 토토 결과의 토토 결과; 보다아래
current_timestamp 타임 스탬프 날짜와 토토 결과; 보다아래
date_part(텍스트, 타임 스탬프) 더블 정밀도 서브 필드 받기 (동등한Extract); 참조 참조아래 date_part ( '토토 결과', 타임 스탬프 '2001-02-16 20:38:40') 20
date_part(텍스트, 간격) 이중 정밀 서브 필드 받기 (Extract); 참조 참조아래 date_part ( 'Month', Interval '2 년 3 개월) 3
date_trunc(텍스트, 타임 스탬프) 타임 스탬프 지정된 정밀도로 잘린다; 참조 참조아래 date_trunc ( '토토 결과', 타임 스탬프 '2001-02-16 20:38:40') 2001-02-16 20 : 00 : 00+00
Extract​​(필드From타임 스탬프) 이중 정밀 서브 필드를 얻으십시오. 참조 참조아래 추출물 (타임 스탬프에서 토토 결과 '2001-02-16 20:38:40') 20
Extract(필드From간격) 이중 정밀도 서브 필드를 얻으십시오. 참조 참조아래 추출물 (간격에서 월 '2 년 3 개월) 3
Isfinite(타임 스탬프) 부울 유한 타임 스탬프 테스트 (유효하지 않은 NO 무한대) Isfinite (Timestamp '2001-02-16 21:28:30 ') true
Isfinite(간격) 부울 유한 간격 테스트 isfinite (간격 '4 토토 결과 ') true
now() 타임 스탬프 현재 날짜 및 토토 결과 (동등한current_timestamp); 보다아래
timeofday () 텍스트 현재 날짜 및 토토 결과; 보다아래 timeofday () 2 월 21 일 17 : 01 : 13.000126 2001 EST
타임 스탬프(날짜) 타임 스탬프 날짜to타임 스탬프 타임 스탬프 (날짜 '2000-12-25') 2000-12-25 00:00:00
타임 스탬프(날짜, Time) 타임 스탬프 날짜andTimeto타임 스탬프 타임 스탬프 (날짜 '1998-02-24', 토토 결과 '23 : 07 ') 1998-02-24 23:07:00

4.8.1. Extract, date_part

Extract (필드From소스)

theExtract함수 검색 해 또는 토토 결과과 같은 날짜/토토 결과 값의 하위 필드.소스는 값 표현식입니다 유형으로 평가합니다타임 스탬프또는간격. (유형의 표현날짜또는토토 결과타임 스탬프따라서 다음과 같이 사용할 수 있습니다 잘.)필드는 식별자입니다 또는 소스에서 추출 할 필드를 선택하는 문자열 값. 그만큼Extract함수 유형의 값을 반환이중 정밀. 다음은 유효한 값입니다 :

Century

연도 필드는 100으로 나눈

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

세기 분야의 결과는 단순히 올해의 필드는 기존의 것이 아닌 100으로 나뉩니다. 1900 년대에 대부분의 20 세기.

day

The Day (월) 필드 (1-31)

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

연도 필드는 10으로 나눈

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

요일 (0-6; 일요일은 0) (for타임 스탬프값 만 해당)

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

올해의 날 (1-365/366) (for타임 스탬프값 만 해당)

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

for날짜and타임 스탬프값, 이후 몇 초 1970-01-01 00 : 00 : 00-00 (결과는 음수 일 수 있습니다.); 을 위한간격값, 총 숫자 간격에서 초의 초

추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :982352320추출을 선택하십시오 (Epoch from interval '5 Days 3 토토 결과');결과 :442800
Hour

토토 결과 필드 (0-23)

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

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

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

연도 필드는 1000으로 나뉩니다

Extract (TimeStamp '2001-02-16 20:38:40'); 추출물을 선택하십시오.결과 :2

밀레니엄 필드의 결과는 다음과 같습니다 단순히 올해의 필드는 1900 년대에 수년간의 기존의 정의 두 번째 천년.

milliseconds

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

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

분 필드 (0-59)

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

for타임 스탬프값, 숫자 한 해의 달 (1-12); 을 위한간격달의 수, 모듈로 가치를 평가합니다 12 (0-11)

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

그날의 1/4 분기 (1-4) (을 위한타임 스탬프값 만 해당)

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

분수 부품을 포함한 초 필드 (0- 59[1])

추출을 선택하십시오 (TimeStamp '2001-02-16 20:38:40');결과 :40추출을 선택하십시오 (Time From '17 : 12 : 28.5 ');결과 :28.5
Timezone_hour

토토 결과대 오프셋의 토토 결과 구성 요소.

Timezone_Minute

토토 결과대 오프셋의 미세 구성 요소.

at타임 스탬프값, 그날의 연도 주 수를 계산하십시오. 안에 있습니다. 정의에 따라 (ISO8601), 1 년의 첫 주 그해 1 월 4 일에 포함됩니다. (그만큼ISO주간은 월요일에 시작됩니다.) 다른 말, 1 년의 첫 목요일은 그 중 1 주차입니다. 년도.

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

올해 필드

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

the추출물함수는입니다 주로 계산 처리를위한 것입니다. 서식을 위해 디스플레이 날짜/토토 결과 값, 참조섹션 4.7.

thedate_part함수는입니다 전통적으로 모델링IngresSQL-기능Extract:

date_part ( '필드',소스)

여기서필드값은 문자열이어야합니다. 에 대한 유효한 필드 값date_part와 동일합니다Extract.

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

4.8.2. date_trunc

함수date_truncis 개념적으로Trunc숫자에 대한 기능.

date_trunc ( '필드',소스)

소스는 값 표현식입니다 유형타임 스탬프(유형 값날짜Time자동으로 캐스트).필드타임 스탬프 값을 자울 수있는 정밀도를 선택합니다. 반환 값은 유형입니다타임 스탬프선택한 하나보다 적은 모든 필드가있는 모든 필드가 0으로 0으로 (또는 하나, 요일과 월).

유효한 값필드are :

마이크로 초
milliseconds
Second
Minute
Hour
day
Month
10 년
Century
밀레니엄
date_trunc ( '토토 결과', 타임 스탬프 '2001-02-16 20:38:40'); 선택결과 :2001-02-16 20 : 00 : 00+00date_trunc ( 'year', timestamp '2001-02-16 20:38:40'); 선택결과 :35799_35823

4.8.3. 현재의 날짜/토토 결과

전류를 얻기 위해 다음 기능을 사용할 수 있습니다 날짜 및/또는 토토 결과 :

current_date
current_time
current_timestamp
current_time (정밀)
current_timestamp (정밀)

current_timecurrent_timestamp선택적으로 주어질 수 있습니다 결과를 반올림하는 정밀 매개 변수 그 많은 분수 숫자. 정밀 매개 변수가 없으면 결과가 완전한 정밀도로 제공됩니다.

참고 :이전PostgreSQL7.2, 정밀도 매개 변수는 구현되지 않았으며 결과는 항상있었습니다 정수 초에 주어진 것.

참고 :theSQL99표준에는 이러한 기능이 필요합니다 정밀도가 아니라면 괄호없이 쓰기 매개 변수가 제공됩니다. 기준PostgreSQL7.2, 빈 쌍 괄호를 작성할 수 있지만 이것은 더 이상 사용되지 않으며 5 월 향후 릴리스에서 제거됩니다.

current_time을 선택하십시오;14:39:53.662522-05current_date; 선택2001-12-23current_timestamp; 선택2001-12-23 14:39:53.662522-05select current_timestamp (2);2001-12-23 14:39:53.66-05

함수now ()is 전통적인PostgreSQL동등한current_timestamp.

또한TimeOfday (), 역사적 이유로 에이타임 스탬프값 :

timeofday ()를 선택하십시오.
 토요일 2 월 17 일 19 : 07 : 32.000126 2001 EST

그것을 깨닫는 것이 매우 중요합니다current_timestamp및 관련 기능 모두 현재 거래 시작시 토토 결과을 반환하십시오. 거래가 실행되는 동안 값이 증가하지 않습니다. 하지만TimeOfday ()반환합니다 실제 현재 토토 결과.

모든 날짜/토토 결과 데이터 유형은 특별한 리터럴도 허용합니다. 값now현재 날짜를 지정합니다 그리고 토토 결과. 따라서 다음 세 가지 모두 동일하게 반환합니다 결과:

select current_timestamp;
지금 ()을 선택하십시오.
타임 스탬프 '지금'; 선택

참고 :테이블을 작성하는 동안 기본값을 지정합니다. 그만큼 시스템은 변환됩니다지금a타임 스탬프상수가있는 즉시 기본값이 필요한 경우 토토 결과 테이블 생성의 사용이 사용됩니다! 처음 두 형태 기본값이 사용될 때까지 평가되지 않습니다. 기능 호출이기 때문입니다. 따라서 그들은 줄 것입니다 행의 토토 결과에 대한 불이행의 원하는 동작 삽입.

노트

[1]

60 운영에 의해 도약 초가 구현되면 체계