표 9-26스포츠 토토 베트맨/시간 값 처리에 사용할 수 있는 함수를 표시합니다. 자세한 내용은 다음 하위 섹션에 나와 있습니다.표 9-25기본 산술 연산자의 동작을 설명합니다. (+, *등). 서식 지정 기능은 다음을 참조하세요.섹션 9.8. 당신은 스포츠 토토 베트맨/시간 데이터 유형에 대한 배경 정보를 잘 알고 있습니다. 에서PostgreSQL : 문서 : 8.0 : 날짜/배트맨 토토 유형.
아래에 설명된 모든 함수와 연산자는 다음을 수행합니다.시간또는타임스탬프입력은 실제로 두 가지 변형으로 제공됩니다. 하나는 소요됩니다.시간대 포함 시간또는타임스탬프 시간대 포함, 그리고 걸리는 것시간 시간대 없음또는시간이 없는 타임스탬프 존. 간결성을 위해 이러한 변형은 별도로 표시되지 않습니다. 또한,+그리고*연산자는 교환 가능한 쌍으로 제공됩니다(예: 스포츠 토토 베트맨 + 정수 및 정수 + 스포츠 토토 베트맨 모두); 우리는 각각 하나만 보여줍니다 그런 쌍.
표 9-25. 스포츠 토토 베트맨/시간 연산자
| 운영자 | 예 | 결과 |
|---|---|---|
| + | 스포츠 토토 베트맨 '2001-09-28' + 정수 '7' | 스포츠 토토 베트맨 '2001-10-05' |
| + | 스포츠 토토 베트맨 '2001-09-28' + 간격 '1 시간' | 타임스탬프 '2001-09-28 01:00' |
| + | 스포츠 토토 베트맨 '2001-09-28' + 시간 '03:00' | 타임스탬프 '2001-09-28 03:00' |
| + | 간격 '1일' + 간격 '1 시간' | 간격 '1일 01:00' |
| + | 타임스탬프 '2001-09-28 01:00' + 간격 '23시간' | 타임스탬프 '2001-09-29 00:00' |
| + | 시간 '01:00' + 간격 '3 시간' | 시간 '04:00' |
| - | - 간격 '23시간' | 간격 '-23:00' |
| - | 스포츠 토토 베트맨 '2001-10-01' - 스포츠 토토 베트맨 '2001-09-28' | 정수 '3' |
| - | 스포츠 토토 베트맨 '2001-10-01' - 정수 '7' | 스포츠 토토 베트맨 '2001-09-24' |
| - | 스포츠 토토 베트맨 '2001-09-28' - 간격 '1 시간' | 타임스탬프 '2001-09-27 23:00' |
| - | 시간 '05:00' - 시간 '03:00' | 간격 '02:00' |
| - | 시간 '05:00' - 간격 '2 시간' | 시간 '03:00' |
| - | 타임스탬프 '2001-09-28 23:00' - 간격 '23시간' | 타임스탬프 '2001-09-28 00:00' |
| - | 간격 '1일' - 간격 '1 시간' | 간격 '23:00' |
| - | 타임스탬프 '2001-09-29 03:00' - 타임스탬프 '2001-09-27 12:00' | 간격 '1일 15:00' |
| * | 간격 '1시간' * double 정밀도 '3.5' | 간격 '03:30' |
| / | 간격 '1시간'/더블 정밀도 '1.5' | 간격 '00:40' |
표 9-26. 스포츠 토토 베트맨/시간 함수
| 기능 | 반환 유형 | 설명 | 예 | 결과 |
|---|---|---|---|---|
나이(타임스탬프,
타임스탬프) |
간격 | 인수를 빼서 a를 생성합니다."상징적"연도와 년도를 사용한 결과 개월 | age(타임스탬프 '2001-04-10', 타임스탬프 '1957-06-13') | 43년 9월 27일 |
나이(타임스탬프) |
간격 | 다음에서 빼기현재_스포츠 토토 베트맨 |
나이(타임스탬프 '1957-06-13') | 43년 8개월 3일 |
현재_스포츠 토토 베트맨 |
스포츠 토토 베트맨 | 오늘 스포츠 토토 베트맨; 보다섹션 9.9.4 | ||
현재_시간 |
시간대 포함 시간 | 시간; 보다섹션 9.9.4 | ||
현재_타임스탬프 |
시간대가 포함된 타임스탬프 | 스포츠 토토 베트맨와 시간; 보다섹션 9.9.4 | ||
date_part(텍스트,
타임스탬프) |
배정밀도 | 하위 필드 가져오기(동등함추출); 보다섹션
9.9.1 |
date_part('시간', 타임스탬프 '2001-02-16 20:38:40') | 20 |
date_part(텍스트,
간격) |
배정밀도 | 하위 필드 가져오기(동등함추출); 보다섹션
9.9.1 |
date_part('월', 간격 '2 년 3개월') | 3 |
date_trunc(텍스트,
타임스탬프) |
타임스탬프 | 지정된 정밀도로 자릅니다. 또한 참조섹션 9.9.2 | date_trunc('시간', 타임스탬프 '2001-02-16 20:38:40') | 2001-02-16 20:00:00 |
추출(필드from타임스탬프) |
배정밀도 | 하위 필드 가져오기; 보다섹션 9.9.1 | 추출(타임스탬프에서 시간 '2001-02-16 20:38:40') | 20 |
추출(필드from간격) |
배정밀도 | 하위 필드 가져오기; 보다섹션 9.9.1 | 추출(간격 '2의 월 년 3개월') | 3 |
무한(타임스탬프) |
부울 | 유한한 타임 스탬프 테스트(다음과 같지 않음) 무한대) | isfinite(타임스탬프 '2001-02-16 21:28:30') | 참 |
무한(간격) |
부울 | 유한 간격 테스트 | 무한(간격 '4 시간') | 참 |
현지시간 |
시간 | 시간; 보다섹션 9.9.4 | ||
localtimestamp |
타임스탬프 | 스포츠 토토 베트맨와 시간; 보다섹션 9.9.4 | ||
지금() |
시간대가 포함된 타임스탬프 | 현재 스포츠 토토 베트맨 및 시간(동등함현재_타임스탬프); 보다섹션
9.9.4 |
||
timeofday() |
텍스트 | 현재 스포츠 토토 베트맨 및 시간; 보다섹션 9.9.4 |
이러한 함수 외에도 SQL겹침연산자가 지원됩니다:
( 시작1, end1) 중복(시작2, end2 ) ( 시작1, 길이1) 중복(시작2, 길이2 )
이 표현식은 두 기간(다음으로 정의됨)일 때 참이 됩니다. 끝점)이 겹치고, 겹치지 않으면 false입니다. 그만큼 엔드포인트는 스포츠 토토 베트맨, 시간 또는 시간의 쌍으로 지정할 수 있습니다. 우표; 또는 스포츠 토토 베트맨, 시간 또는 타임스탬프 다음에 간격.
SELECT (스포츠 토토 베트맨 '2001-02-16', 스포츠 토토 베트맨 '2001-12-21') 겹침
(스포츠 토토 베트맨 '2001-10-30', 스포츠 토토 베트맨 '2002-10-30');결과:참SELECT (스포츠 토토 베트맨 '2001-02-16', 간격 '100일') 겹침
(스포츠 토토 베트맨 '2001-10-30', 스포츠 토토 베트맨 '2002-10-30');결과:거짓
추출, date_part추출(필드발신출처)
그추출함수 검색
스포츠 토토 베트맨/시간 값의 연도 또는 시간과 같은 하위 필드입니다.출처값이어야 합니다
유형의 표현타임스탬프, 시간, 또는간격.
(유형의 표현스포츠 토토 베트맨다음으로 전송됩니다타임스탬프따라서 다음과 같이 사용될 수 있습니다.
잘.)필드식별자입니다
또는 소스에서 추출할 필드를 선택하는 문자열
값. 그만큼추출함수
유형의 값을 반환합니다.배정밀도.
다음은 유효한 필드 이름입니다.
세기
추출 선택(타임스탬프 '2000-12-16 12:21:13'의 세기);결과:20추출 선택(타임스탬프 '2001-02-16 20:38:40'의 세기);결과:21
1세기는 서기 0001-01-01 00:00:00에 시작됩니다. 당시에는 몰랐지만. 이것 정의는 모든 그레고리력 국가에 적용됩니다. 세기 번호 0이 없으면 -1에서 1로 이동합니다. 이에 동의하지 않는 경우 다음 주소로 불만 사항을 작성해 주십시오. Pope, 바티칸 로마의 성 베드로 대성당.
포스트그레SQL출시 8.0 이전에는 기존의 번호 매기기를 따르지 않았습니다. 세기를 반환했지만 연도 필드를 다음으로 나눈 값을 반환했습니다. 100.
일(월) 필드(1 - 31)
추출물 선택(타임스탬프 '2001-02-16 20:38:40'의 스포츠 토토 베트맨);결과:16
연도 필드를 10으로 나눈 값
추출 선택(타임스탬프 '2001-02-16 20:38:40'에서 10년 후);결과:200
요일(0 - 6; 일요일은 0)(for타임스탬프값만)
추출 선택(타임스탬프에서 다우 '2001-02-16 20:38:40');결과:5
참고하세요추출의 날
주의 번호 매기기가 해당 주의 번호와 다릅니다.to_char함수.
연중 일(1 - 365/366) (for타임스탬프값만)
추출 선택(타임스탬프에서 DOY '2001-02-16 20:38:40');결과:47
용스포츠 토토 베트맨그리고타임스탬프값, 이후 경과된 시간(초) 1970-01-01 00:00:00-00 (음수일 수 있음); 을 위한간격값, 총 초 수 그 간격에
추출 선택(시간대가 '2001-02-16 20:38:40-08'인 타임스탬프의 에포크);결과:982384720추출 선택('5일 3시간' 간격의 에포크);결과:442800
에포크 값을 다시 에포크 값으로 변환하는 방법은 다음과 같습니다. 타임스탬프:
시간대 '에포크' + 982384720 * 간격 '1초'가 포함된 타임스탬프 선택;
시간 필드(0 - 23)
추출 선택(타임스탬프 '2001-02-16 20:38:40'으로부터 시간);결과:20
소수 부분을 포함한 초 필드는, 1,000,000을 곱합니다. 여기에는 전체가 포함됩니다. 초.
추출 선택('17:12:28.5' 시간부터 밀리초);결과:28500000
천년기
추출 선택(타임스탬프 '2001-02-16 20:38:40'에서 밀레니엄');결과:3
1900년대는 두 번째 천년기에 속합니다. 그만큼 세 번째 밀레니엄은 2001년 1월 1일에 시작됩니다.
PostgreSQL출시 8.0 이전에는 기존의 번호 매기기를 따르지 않았습니다. 수천년이지만 연도 필드를 다음으로 나눈 값을 반환했습니다. 1000.
소수 부분을 포함한 초 필드는, 1000을 곱합니다. 여기에는 전체 항목이 포함됩니다. 초.
추출 선택('17:12:28.5' 시간부터 밀리초);결과:28500
분 필드(0 - 59)
추출 선택(타임스탬프 '2001-02-16 20:38:40'에서 1분 후);결과:38
용타임스탬프값, 숫자 해당 연도의 월(1 - 12) ; 을 위한간격월 수, 모듈로 값 12(0 - 11)
추출 선택(타임스탬프 '2001-02-16 20:38:40'의 월);결과:2추출 선택('2년 3개월' 간격의 월);결과:3추출 선택('2년 13개월' 간격의 월);결과:1
해당 스포츠 토토 베트맨가 속하는 분기(1 - 4) (을 위한타임스탬프값만)
추출 선택(타임스탬프 '2001-02-16 20:38:40'의 분기);결과:1
소수 부분을 포함한 초 필드(0 - 59[1])
추출 선택(타임스탬프 '2001-02-16 20:38:40'에서 두 번째);결과:40추출 선택('17:12:28.5' 시간으로부터 두 번째);결과:28.5
UTC로부터의 시간대 오프셋으로, 초 단위로 측정됩니다. 양수 값은 UTC 동쪽 시간대에 해당합니다. UTC 서쪽 지역에는 음수 값이 적용됩니다.
시간대 오프셋의 시간 구성요소
시간대 오프셋의 분 구성요소
해당 스포츠 토토 베트맨가 속한 주의 수입니다. 정의에 따르면 (ISO8601), 연도의 첫 번째 주에는 다음 스포츠 토토 베트맨의 1월 4일이 포함됩니다. 그 해. (그만큼ISO-8601주는 월요일에 시작됩니다.) 즉, 일년 중 첫 번째 목요일은 1번째 주에 속합니다. 그 해. (을 위한타임스탬프값 오직)
이 때문에 1월 초에는 가능합니다 스포츠 토토 베트맨는 이전의 52번째 또는 53번째 주에 속해야 합니다. 년도. 예를 들어,2005-01-01이다 2004년 53번째 주의 일부 및2006-01-01다음의 52번째 주의 일부입니다. 2005년.
추출 선택(타임스탬프 '2001-02-16 20:38:40'의 주);결과:7
연도 필드입니다. 없다는 점을 명심하세요.0 AD, 그래서 빼기BC년부터AD한 해를 조심스럽게 보내야 합니다.
추출 선택(타임스탬프 '2001-02-16 20:38:40'의 연도);결과:2001
그추출함수는
주로 계산 처리를 위한 것입니다. 서식을 지정하려면
표시할 스포츠 토토 베트맨/시간 값은 다음을 참조하세요.섹션 9.8.
그date_part함수는
전통적인 방식을 모델로 함앵그르에 해당SQL-표준 함수추출:
스포츠 토토 베트맨_부분('필드', 출처)
여기에 주의하세요필드매개변수는 이름이 아닌 문자열 값이어야 합니다. 유효한
에 대한 필드 이름date_part이것은
와 동일추출.
SELECT 스포츠 토토 베트맨_부분('일', TIMESTAMP '2001-02-16 20:38:40');결과:16SELECT date_part('시간', INTERVAL '4시간 3분');결과:4
date_trunc함수date_trunc이다
개념적으로는와 유사합니다.트렁크숫자에 대한 함수입니다.
date_trunc('필드', 출처)
출처값 표현식입니다. 유형타임스탬프또는간격. (유형 값스포츠 토토 베트맨그리고시간캐스트됨 자동으로, ~로타임스탬프또는간격각각.)필드정밀도를 선택합니다. 입력 값을 자릅니다. 반환 값은 다음 유형입니다.타임스탬프또는간격덜 중요한 모든 필드 포함 선택한 것보다 0으로 설정됩니다(또는 요일 및 월).
유효한 값필드다음은:
| 마이크로초 |
| 밀리초 |
| 초 |
| 분 |
| 시간 |
| 일 |
| 주 |
| 월 |
| 분기 |
| 년 |
| 10년 |
| 세기 |
| 밀레니엄 |
예:
SELECT date_trunc('시간', TIMESTAMP '2001-02-16 20:38:40');결과:2001-02-16 20:00:00SELECT date_trunc('연도', TIMESTAMP '2001-02-16 20:38:40');결과:2001-01-01 00:00:00
그시간대구조가 허용합니다 타임스탬프를 다른 시간대로 변환합니다.테이블 9-27변종을 보여줍니다.
표 9-27.시간에 존변형
| 표현 | 반환 유형 | 설명 |
|---|---|---|
| 타임스탬프 시간대 없음시간대영역 | 시간대가 포함된 타임스탬프 | 주어진 시간대의 현지 시간을 UTC로 변환 |
| 타임스탬프 포함 시간대시간대영역 | 시간이 없는 타임스탬프 존 | UTC를 특정 시간대의 현지 시간으로 변환 |
| 시간과 시간 존시간대영역 | 시간대 포함 시간 | 시간대에 따른 현지 시간 변환 |
이 표현식에서는 원하는 시간대영역텍스트로 지정할 수 있습니다. 문자열(예:'PST') 또는 간격으로 (예:간격 '-08:00'). 본문에서 이 경우 사용 가능한 영역 이름은 다음과 같습니다.테이블 B-4. (더 일반적인 이름을 지원하는 것이 유용할 것입니다. 에 표시됨테이블 B-6, 아직 구현되지 않았습니다.)
예(현지 시간대가 다음과 같다고 가정PST8PDT):
시간대 'MST'에서 타임스탬프 '2001-02-16 20:38:40' 선택;결과:2001-02-16 19:38:40-08'MST' 시간대에 '2001-02-16 20:38:40-05' 시간대가 포함된 타임스탬프 선택;결과:2001-02-16 18:38:40
첫 번째 예는 영역 없는 타임 스탬프를 취하고 이를 MST 시간(UTC-7)으로 해석하여 UTC 타임스탬프를 생성합니다. 그런 다음 표시를 위해 PST(UTC-8)로 회전됩니다. 두 번째 예에서는 EST(UTC-5)로 지정된 타임스탬프를 사용하고 MST(UTC-7) 현지 시간으로 변환합니다.
함수시간대(영역, 타임스탬프)은 다음과 같습니다.
SQL 준수 구문타임스탬프시간대영역.
현재 값을 얻기 위해 다음 기능을 사용할 수 있습니다. 스포츠 토토 베트맨 및/또는 시간:
CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_TIME(정밀도) CURRENT_TIMESTAMP(정밀도) 현지 시간 현지타임스탬프 현지시간(정밀도) 현지타임스탬프(정밀도 )
CURRENT_TIME그리고CURRENT_TIMESTAMP시간에 따른 가치 전달
존;현지시간그리고현지타임스탬프시간 없이 가치를 전달하다
존.
CURRENT_TIME, CURRENT_TIMESTAMP, 현지시간및현지타임스탬프선택적으로
결과를 반올림하는 정밀도 매개변수
초 필드에 그만큼의 소수 자릿수가 있습니다. 없이
정밀도 매개변수, 결과는 사용 가능한 전체 값으로 제공됩니다.
정도.
참고:이전포스트그레SQL7.2, 정밀도 매개변수가 구현되지 않았으며 결과는 항상 정수 초로 제공됩니다.
일부 예:
현재_시간 선택;결과:14:39:53.662522-05현재_스포츠 토토 베트맨 선택;결과:2001-12-23현재_TIMESTAMP 선택;결과:2001-12-23 14:39:53.662522-05CURRENT_TIMESTAMP(2) 선택;결과:2001-12-23 14:39:53.66-05현지 타임스탬프 선택;결과:2001-12-23 14:39:53.662522
함수지금()이것은
전통적인포스트그레SQL다음과 동일함CURRENT_TIMESTAMP.
기능도 있습니다timeofday(), 역사적인 이유로
를 반환합니다.텍스트a 대신 문자열타임스탬프값:
시간 선택();결과:2월 17일 토요일 19:07:32.000126 2001 EST
그것을 아는 것이 중요합니다.CURRENT_TIMESTAMP및 관련 기능
현재 트랜잭션의 시작 시간을 반환합니다. 그들의 가치
거래 중에는 변경하지 마십시오. 이는 다음으로 간주됩니다.
기능: 의도는 단일 트랜잭션이
의 일관된 개념"현재"시간, 동일한 내에서 여러 수정이 가능하도록
거래에는 동일한 타임스탬프가 있습니다.timeofday()벽시계 시간을 반환하고
거래 중에 진행됩니다.
참고:다른 데이터베이스 시스템이 이러한 기능을 향상시킬 수 있습니다. 더 자주 가치를 부여합니다.
모든 스포츠 토토 베트맨/시간 데이터 유형은 특수 리터럴도 허용합니다. 값지금현재 스포츠 토토 베트맨를 지정하려면 그리고 시간. 따라서 다음 세 가지 모두 동일한 결과를 반환합니다. 결과:
현재_TIMESTAMP 선택; 지금 선택(); 타임스탬프 '지금' 선택;
팁:당신은 다음과 같은 경우에 세 번째 형식을 사용하고 싶지 않습니다. a 지정기본값절 while 테이블을 만드는 중입니다. 시스템이 변환됩니다.지금에타임스탬프으로 상수가 구문 분석되자마자 기본값이 값이 필요하면 테이블 생성 시간은 사용된! 처음 두 양식은 다음이 완료될 때까지 평가되지 않습니다. 함수 호출이기 때문에 기본값이 사용됩니다. 따라서 그들은 기본적으로 원하는 행동을 제공할 것입니다. 행 삽입 시간.
| [1] |
60 윤초가 연산에 의해 구현된 경우 체계 |