표 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 |
Extract (필드From소스)
theExtract함수 검색 해 또는 토토 베이과 같은 날짜/토토 베이 값의 하위 필드.소스는 값 표현식입니다 유형으로 평가합니다타임 스탬프또는간격. (유형의 표현날짜또는Time타임 스탬프따라서 사용될 수 있습니다 잘.)필드는 식별자입니다 또는 소스에서 추출 할 필드를 선택하는 문자열 값. 그만큼Extract함수 반환 유형의 값이중 정밀. 그만큼 다음은 유효한 값입니다 :
연도 필드는 100으로 나뉩니다.
세기 분야의 결과는 단순히 올해의 필드는 기존의 것이 아닌 100으로 나뉩니다. 1900 년대에 대부분의 20 세기.
하루 (월) 필드 (1-31)
연도 필드는 10으로 나눈
요일 (0-6; 일요일은 0) (for타임 스탬프값 만 해당)
올해의 날 (1-365/366) (for타임 스탬프값 만 해당)
for날짜and타임 스탬프값, 이후 몇 초 1970-01-01 00:00:00 (결과는 음수 일 수 있습니다.); 을 위한간격값, 총 숫자 간격에서 초의 초
토토 베이 필드 (0-23)
분수 부품을 포함한 초 필드, 1,000 000을 곱합니다. 여기에는 전체가 포함됩니다. 초.
연도 필드는 1000으로 나뉩니다
밀레니엄 분야의 결과는 다음과 같습니다 단순히 올해의 필드는 1900 년대에 수년간의 기존의 정의 두 번째 천년.
분수 부품을 포함한 초 필드, 1000을 곱합니다. 여기에는 전체가 포함됩니다 초.
분 필드 (0-59)
for타임 스탬프값, 숫자 한 해의 달 (1-12); 을 위한간격Modulo의 달 수를 평가합니다 12 (0-11)
그날의 1/4 분기 (1-4) (을 위한타임 스탬프값 만 해당)
분수 부품을 포함한 초 필드 (0- 59[1])
a타임 스탬프값, 그날의 연도 주 수를 계산하십시오. 안에 있습니다. 정의에 따라 (ISO8601), 첫 주에는 1 월 4 일에 그해. (그만큼ISO주 다시 말해서, 첫 번째 목요일 1 년은 그 해의 1 주차입니다.
올해 필드
theExtract함수는 주로입니다 계산 처리를위한 것입니다. 서식 날짜/토토 베이 디스플레이 값, 참조섹션 4.6.
thedate_part함수가 모델링됩니다 전통적IngresSQL-토토 베이추출물:
date_part ( '필드',소스)여기서필드값은 문자열이어야합니다. 에 대한 유효한 필드 값date_part와 동일합니다Extract.
함수date_truncis 개념적으로Trunc숫자에 대한 토토 베이.
date_trunc ( '필드',소스)소스는 값 표현식입니다 유형타임 스탬프(유형 값날짜and토토 베이are 자동으로 캐스트).필드타임 스탬프 값을 자울 수있는 정밀도를 선택합니다. 반환 값은 유형입니다타임 스탬프선택한 하나보다 적은 모든 필드가있는 모든 필드가 0으로 0으로 (또는 하나, 요일과 월).
유효한 값필드are :
마이크로 초 |
milliseconds |
Second |
Minute |
Hour |
day |
Month |
년 |
10 년 |
Century |
밀레니엄 |
전류를 얻기 위해 다음 기능을 사용할 수 있습니다 날짜 및/또는 토토 베이 :
current_time current_date current_timestamp의 요구 사항 때문에SQL표준, 이러한 토토 베이을 호출해서는 안됩니다 후행 괄호와 함께.
함수now ()입니다 전통적인Postgres동등한current_timestamp.
또한TimeOfday ()현재 토토 베이을보다 높은 정밀도로 반환합니다.current_timestamp가족은 :
TimeOfday ()작동을 사용합니다 시스템 호출gettimeofday (2)마이크로 초만큼 좋은 해상도가있을 수 있습니다 (귀하에 따라 플랫폼); 다른 기능은토토 베이 (2)1 초로 제한됩니다 해결. 역사적 이유로TimeOfday ()결과를 텍스트 문자열로 반환합니다 타임 스탬프 값보다는 대신.
그것을 깨닫는 것이 매우 중요합니다current_timestamp및 관련 기능 모두 현재 거래 시작시 토토 베이을 반환하십시오. 거래가 실행되는 동안 값이 증가하지 않습니다. 하지만TimeOfday ()실제를 반환합니다 현재 토토 베이.
모든 날짜/토토 베이 데이터 유형은 특별한 리터럴도 허용합니다 값now현재 날짜를 지정합니다 그리고 토토 베이. 따라서 다음 세 가지 모두 동일하게 반환합니다 결과:
select current_timestamp; 지금 ()을 선택하십시오. 타임 스탬프 '지금'; 선택
참고 :테이블을 작성하는 동안 기본값을 지정합니다. 그만큼 시스템은 변환됩니다nowa 상수가 구문 분석하자마자 타임 스탬프 기본값이 필요하고 테이블 생성 토토 베이 사용될 것입니다! 처음 두 형태는 평가되지 않습니다 기본값이 사용될 때까지 기능이기 때문에 전화. 따라서 그들은 원하는 행동을 줄 것입니다 행 삽입 토토 베이에 대한 기본값
[1] |
60 운영에 의해 도약 초가 구현되면 체계 |