표 4-14날짜/토토 베이 값 처리에 사용할 수 있는 함수를 표시합니다. 는 기본 산술 연산자(+, *등)도 사용할 수 있습니다. 에 대한 서식 지정 함수는 참조섹션 4.6. 당신은 날짜/토토 베이 데이터 유형에 대한 배경 정보를 잘 알고 있습니다. (참조PostgreSQL : 문서 : 7.1 : 날짜/토토 꽁 머니 유형).
표 4-14. 날짜/토토 베이 함수
| 이름 | 반환 유형 | 설명 | 예 | 결과 |
|---|---|---|---|---|
| 나이(타임스탬프) | 간격 | 오늘에서 빼기 | 나이(타임스탬프 '1957-06-13') | 43년 8개월 3일 |
| 나이(타임스탬프, 타임스탬프) | 간격 | 인수 빼기 | age('2001-04-10', 타임스탬프 '1957-06-13') | 43년 9월 27일 일 |
| 현재_날짜 | 날짜 | 오늘 날짜; 참조아래 | ||
| 현재_토토 베이 | 토토 베이 | 토토 베이; 참조아래 | ||
| 현재_타임스탬프 | 타임스탬프 | 날짜와 토토 베이; 또한 참조아래 | ||
| date_part(텍스트, 타임스탬프) | 배정밀도 | 하위 필드 가져오기(동등함추출); 또한 참조아래 | date_part('토토 베이', 타임스탬프 '2001-02-16 20:38:40') | 20 |
| date_part(텍스트, 간격) | 배정밀도 | 하위 필드 가져오기(동등함추출); 또한 참조아래 | date_part('월', 간격 '2년 3개월') | 3 |
| date_trunc(텍스트, 타임스탬프) | 타임스탬프 | 지정된 내용으로 자르기 정밀도; 또한 참조아래 | date_trunc('토토 베이', 타임스탬프 '2001-02-16 20:38:40') | 2001-02-16 20:00:00+00 |
| 추출(필드타임스탬프에서) | 배정밀도 | 하위 필드 가져오기; 또한 참조아래 | 추출(타임스탬프에서 토토 베이 '2001-02-16 20:38:40') | 20 |
| 추출(필드간격에서) | 배정밀도 | 하위 필드 가져오기; 또한 참조아래 | 추출(간격의 월 '2년 3개월') | 3 |
| 유한(타임스탬프) | 부울 | 유한한 타임 스탬프 테스트 (유효하지도 않고 무한대도 아님) | 무한(타임스탬프 '2001-02-16 21:28:30') | 참 |
| 무한(간격) | 부울 | 유한 테스트 간격 | 무한(간격 '4 토토 베이') | 사실 |
| 지금() | 타임스탬프 | 현재 날짜 및 토토 베이 (동등함현재_타임스탬프); 또한 참조아래 | ||
| timeofday() | 텍스트 | 고정밀 날짜 및 토토 베이; 또한 참조아래 | timeofday() | 수 2월 21일 17:01:13.000126 2001년 동부 표준시 |
| 타임스탬프(날짜) | 타임스탬프 | 타임스탬프 날짜 | 타임스탬프(날짜 '2000-12-25') | 2000-12-25 00:00:00 |
| 타임스탬프(날짜, 토토 베이) | 타임스탬프 | 날짜 및 토토 베이 타임스탬프 | 타임스탬프(날짜 '1998-02-24', 토토 베이 '23:07') | 1998-02-24 23:07:00 |
추출(필드발신출처)
그추출함수 검색 연도 또는 토토 베이과 같은 날짜/토토 베이 값의 하위 필드입니다.출처값 표현식입니다. 유형으로 평가됩니다.타임스탬프또는간격. (유형의 표현날짜또는토토 베이다음으로 전송됩니다타임스탬프그러므로 다음과 같이 사용할 수 있습니다. 음.)필드식별자입니다. 또는 소스에서 추출할 필드를 선택하는 문자열 가치.추출함수 반환 유형 값배정밀도. 는 유효한 값은 다음과 같습니다.
연도 필드를 100으로 나눈 값
세기 필드의 결과는 다음과 같습니다. 일반적인 방식이 아닌 100으로 나눈 연도 필드 대부분의 연도를 1900년대로 두는 정의 20세기.
일(월) 필드(1 - 31)
연도 필드를 10으로 나눈 값
요일(0 - 6; 일요일은 0)(for타임스탬프값만)
연중 일(1 - 365/366)(for타임스탬프값만)
용날짜그리고타임스탬프값, 이후 경과된 토토 베이(초) 1970-01-01 00:00:00 (결과가 부정적일 수 있습니다.); 에 대한간격값, 총 개수 간격의 초
토토 베이 필드(0 - 23)
소수 부분을 포함한 초 필드는, 1,000,000을 곱합니다. 여기에는 전체가 포함됩니다. 초.
연도 필드를 1000으로 나눈 값
밀레니엄 필드의 결과는 다음과 같습니다. 단순히 연도 필드를 1000으로 나눈 것이지, 1900년대를 1900년대로 보는 전통적인 정의 두 번째 천년.
소수 부분을 포함한 초 필드는, 1000을 곱합니다. 여기에는 전체 항목이 포함됩니다. 초.
분 필드(0 - 59)
용타임스탬프값, 숫자 해당 연도의 월(1 - 12) ; 에 대한간격월 수, 모듈로 값 12(0 - 11)
해당 날짜가 속한 연도의 분기(1 - 4) (for타임스탬프값만)
소수 부분을 포함한 초 필드(0 - 59[1])
A로부터타임스탬프값, 해당 날짜가 해당 연도의 몇 번째 주인지 계산합니다. 에 있습니다. 정의에 따르면 (ISO8601), 연도의 첫 번째 주에는 다음 날짜의 1월 4일이 포함됩니다. 그 해. (그ISO주 월요일부터 시작됩니다.) 즉, 첫 번째 목요일입니다. 1년은 해당 연도의 1주차입니다.
연도 필드
그추출함수는 주로 계산 처리를 위한 것입니다. 날짜/토토 베이 형식 지정의 경우 표시 값은 참조섹션 4.6.
그날짜_부분함수가 모델링되었습니다. 전통적으로앵그르에 해당SQL-토토 베이추출:
날짜_부분('필드', 출처)
여기에 주의하세요필드값은 문자열이어야 합니다. 에 대한 유효한 필드 값date_part다음과 동일합니다추출.
함수date_trunc이다 개념적으로는와 유사합니다.트렁크숫자에 대한 함수입니다.
date_trunc('필드', 출처)
출처값 표현식입니다.
유형타임스탬프(유형 값날짜그리고토토 베이있습니다
자동으로 전송).필드타임스탬프 값을 자를 정밀도를 선택합니다.
반환 값은 다음 유형입니다.타임스탬프선택한 필드보다 작은 모든 필드는 0으로 설정됩니다.
(또는 일과 월에 대해 하나).유효한 값필드다음은:
| 마이크로초 |
| 밀리초 |
| 초 |
| 분 |
| 토토 베이 |
| 일 |
| 월 |
| 년 |
| 10년 |
| 세기 |
| 밀레니엄 |
현재 값을 얻기 위해 다음 기능을 사용할 수 있습니다. 날짜 및/또는 토토 베이:
CURRENT_TIME CURRENT_DATE CURRENT_TIMESTAMP다음의 요구사항 때문에 주의하세요SQL표준, 이 함수는 호출되어서는 안 됩니다. 뒤에 괄호가 있습니다.
함수지금()이것은 전통적포스트그레스동등함CURRENT_TIMESTAMP.
또한 있습니다timeofday(), 이는 현재 토토 베이을 더 높은 정밀도로 반환합니다.CURRENT_TIMESTAMP가족이 하는 일:
timeofday()운영을 사용합니다 시스템 호출gettimeofday(2), 이는 마이크로초만큼 좋은 해상도를 가질 수 있습니다(귀하의 환경에 따라 다름). 플랫폼); 다른 기능은 다음과 같습니다.토토 베이(2)1초로 제한됩니다. 해상도. 역사적인 이유로,timeofday()결과를 텍스트 문자열로 반환합니다. 타임스탬프 값이 아닌.
그것을 깨닫는 것이 매우 중요합니다.CURRENT_TIMESTAMP및 관련 기능 모두 현재 트랜잭션이 시작된 시점의 토토 베이을 반환합니다. 트랜잭션이 실행되는 동안 해당 값은 증가하지 않습니다. 하지만timeofday()실제 값을 반환합니다. 현재 토토 베이.
모든 날짜/토토 베이 데이터 유형은 특수 리터럴도 허용합니다. 값지금현재 날짜를 지정하려면 그리고 토토 베이. 따라서 다음 세 가지 모두 동일한 결과를 반환합니다. 결과:
현재_TIMESTAMP 선택; 지금 선택(); 타임스탬프 '지금' 선택;
참고:다음 경우에 세 번째 형식을 사용하고 싶지 않습니다. 테이블을 생성하는 동안 DEFAULT 값을 지정합니다. 는 시스템이 변환됩니다지금에 상수가 구문 분석되자마자 타임스탬프가 표시되므로 기본값이 필요하며, 테이블 생성 토토 베이 사용될 것이다! 처음 두 양식은 평가되지 않습니다. 함수이기 때문에 기본값이 사용될 때까지 전화. 따라서 그들은 원하는 동작을 제공합니다 기본값은 행 삽입 토토 베이입니다.
| [1] |
60 윤초가 연산에 의해 구현된 경우 시스템 |