이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 9.9. 날짜/와이즈 토토 토토 베이 및 운영자버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

4.7. 날짜/시간 토토 베이

표 4-14날짜/시간 값 처리에 사용 가능한 토토 베이이 표시됩니다. 그만큼 기본 산술 연산자 (+, *등)도 제공됩니다. 을 위한 형식 함수, 참조섹션 4.6. 당신은해야합니다 날짜/토토 베이 데이터 유형에 대한 배경 정보에 익숙합니다 (보다PostgreSQL : 문서 : 7.1 : 날짜/토토 꽁 머니 유형).

표 4-14. 날짜/토토 베이 기능

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

4.7.1. Extract, date_part

Extract (필드From소스)

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

Century

연도 필드는 100으로 나뉩니다.

Extract (TimeStamp '2001-02-16 20:38:40'에서 Century);결과 :20

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

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 (결과는 음수 일 수 있습니다.); 을 위한간격값, 총 숫자 간격에서 초의 초

추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :982352320Extract (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
Millennium

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

추출을 선택하십시오 (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); 을 위한간격Modulo의 달 수를 평가합니다 12 (0-11)

추출을 선택하십시오 (TimeStamp '2001-02-16 20:38:40');결과 :2Extract를 선택하십시오 (매월 '2 년 3 개월');결과 :3SELECT EXTRACT(MONTH FROM INTERVAL '2 years 13 months');결과 :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
주간

a타임 스탬프값, 그날의 연도 주 수를 계산하십시오. 안에 있습니다. 정의에 따라 (ISO8601), 첫 주에는 1 월 4 일에 그해. (그만큼ISO주 다시 말해서, 첫 번째 목요일 1 년은 그 해의 1 주차입니다.

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

올해 필드

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

theExtract함수는 주로입니다 계산 처리를위한 것입니다. 서식 날짜/토토 베이 디스플레이 값, 참조섹션 4.6.

thedate_part함수가 모델링됩니다 전통적IngresSQL-토토 베이추출물:

date_part ( '필드',소스)
여기서필드값은 문자열이어야합니다. 에 대한 유효한 필드 값date_part와 동일합니다Extract.
date_part를 선택하십시오 ( 'day', timestamp '2001-02-16 20:38:40');결과 :16date_part 선택 ( '토토 베이', 간격 '4 토토 베이 3 분')결과 :4

4.7.2. date_trunc

함수date_truncis 개념적으로Trunc숫자에 대한 토토 베이.

date_trunc ( '필드',소스)
소스는 값 표현식입니다 유형타임 스탬프(유형 값날짜and토토 베이are 자동으로 캐스트).필드타임 스탬프 값을 자울 수있는 정밀도를 선택합니다. 반환 값은 유형입니다타임 스탬프선택한 하나보다 적은 모든 필드가있는 모든 필드가 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'); 선택결과 :2001-01-01 00 : 00 : 00+00

4.7.3. 현재 날짜/토토 베이

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

current_time
current_date
current_timestamp
의 요구 사항 때문에SQL표준, 이러한 토토 베이을 호출해서는 안됩니다 후행 괄호와 함께.
current_time을 선택하십시오;19:07:32current_date; 선택2001-02-17current_timestamp; 선택2001-02-17 19:07:32-05

함수now ()입니다 전통적인Postgres동등한current_timestamp.

또한TimeOfday ()현재 토토 베이을보다 높은 정밀도로 반환합니다.current_timestamp가족은 :

select timeofday ();
 토요일 2 월 17 일 19 : 07 : 32.000126 2001 EST

TimeOfday ()작동을 사용합니다 시스템 호출gettimeofday (2)마이크로 초만큼 좋은 해상도가있을 수 있습니다 (귀하에 따라 플랫폼); 다른 기능은토토 베이 (2)1 초로 제한됩니다 해결. 역사적 이유로TimeOfday ()결과를 텍스트 문자열로 반환합니다 타임 스탬프 값보다는 대신.

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

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

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

참고 :테이블을 작성하는 동안 기본값을 지정합니다. 그만큼 시스템은 변환됩니다nowa 상수가 구문 분석하자마자 타임 스탬프 기본값이 필요하고 테이블 생성 토토 베이 사용될 것입니다! 처음 두 형태는 평가되지 않습니다 기본값이 사용될 때까지 기능이기 때문에 전화. 따라서 그들은 원하는 행동을 줄 것입니다 행 삽입 토토 베이에 대한 기본값

노트

[1]

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