표 9-26스포츠 토토 베트맨/시간 값 처리에 사용 가능한 기능이 표시됩니다. 다음 하위 섹션에 세부 사항이 나타납니다.표 9-25기본 산술 연산자의 동작을 보여줍니다 (+, *등). 함수 서식에 대해서는를 참조하십시오.섹션 9.8. 당신은해야합니다 스포츠 토토 베트맨/시간 데이터 유형에 대한 배경 정보에 익숙합니다 에서PostgreSQL : 문서 : 8.0 : 날짜/배트맨 토토 유형.
아래에 설명 된 모든 기능 및 연산자Time또는타임 스탬프입력은 실제로 두 가지 변형으로 제공됩니다.시간대가있는 시간또는타임 스탬프 시간대와 함께그리고 가져가는 것이시간 시간대없이또는시간이없는 타임 스탬프 존. 간결하게, 이러한 변종은 별도로 표시되지 않습니다. 또한,+and*운영자는 정류 쌍으로 제공됩니다 (예 : 스포츠 토토 베트맨 + 정수 및 정수 + 스포츠 토토 베트맨); 우리는 각각 중 하나만 보여줍니다 그런 쌍.
표 9-25. 스포츠 토토 베트맨/시간 운영자
운영자 | example | 결과 |
---|---|---|
+ | 스포츠 토토 베트맨 '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 ' |
+ | Time '01 : 00 ' + 간격'3 시간 ' | Time '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 ' |
- | Time '05 : 00 ' - 시간 '03 : 00 ' | 간격 '02 : 00 ' |
- | Time '05 : 00 ' - 간격'2 시간 ' | Time '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 시간' * 더블 정밀도 '3.5' | 간격 '03 : 30 ' |
/ | 간격 '1 시간' / 더블 정밀도 '1.5' | Interval '00 : 40 ' |
표 9-26. 스포츠 토토 베트맨/시간 기능
기능 | 반환 유형 | 설명 | example | 결과 |
---|---|---|---|---|
Age (타임 스탬프,
타임 스탬프) |
간격 | 인수를 빼고 a"Symbolic"연도를 사용한 결과 달 | Age (Timestamp '2001-04-10', 타임 스탬프 '1957-06-13') | 43 세 9 몬 몬 27 일 |
age (타임 스탬프) |
간격 | 에서 빼기current_date |
시대 (타임 스탬프 '1957-06-13') | 18488_18512 |
current_date |
스포츠 토토 베트맨 | 오늘 스포츠 토토 베트맨; 보다섹션 9.9.4 | ||
current_time |
시간대가있는 시간 | 시간의 시간; 보다섹션 9.9.4 | ||
current_timestamp |
시간대가있는 타임 스탬프 | 스포츠 토토 베트맨와 시간; 보다섹션 9.9.4 | ||
date_part (텍스트,
타임 스탬프) |
이중 정밀 | 서브 필드 얻기 (Extract ); 보다섹션
9.9.1 |
date_part ( '시간', 타임 스탬프 '2001-02-16 20:38:40') | 20 |
date_part (텍스트,
간격) |
이중 정밀 | 서브 필드 얻기 (Extract ); 보다섹션
9.9.1 |
date_part ( 'Month', Interval '2 년 3 개월) | 3 |
date_trunc (텍스트,
타임 스탬프) |
타임 스탬프 | 지정된 정밀도로 잘린다; 참조 참조섹션 9.9.2 | date_trunc ( '시간', 타임 스탬프 '2001-02-16 20:38:40') | 2001-02-16 20:00:00 |
Extract (필드From타임 스탬프) |
이중 정밀 | 서브 필드를 얻으십시오. 보다섹션 9.9.1 | 추출물 (타임 스탬프에서 시간 '2001-02-16 20:38:40') | 20 |
추출물 (필드From간격) |
이중 정밀 | 서브 필드를 얻으십시오. 보다섹션 9.9.1 | 추출물 (간격에서 월 '2 년 3 개월) | 3 |
Isfinite (타임 스탬프) |
부울 | 유한 타임 스탬프 테스트 (동일하지 않습니다 무한대) | Isfinite (Timestamp '2001-02-16 21:28:30 ') | true |
Isfinite (간격) |
부울 | 유한 간격 테스트 | isfinite (간격 '4 시간 ') | true |
LocalTime |
Time | 시간의 시간; 보다섹션 9.9.4 | ||
LocalTimestamp |
타임 스탬프 | 스포츠 토토 베트맨와 시간; 보다섹션 9.9.4 | ||
now () |
시간대가있는 타임 스탬프 | 현재 스포츠 토토 베트맨 및 시간 (동등한current_timestamp ); 보다섹션
9.9.4 |
||
TimeOfday () |
텍스트 | 현재 스포츠 토토 베트맨 및 시간; 보다섹션 9.9.4 |
이러한 함수 외에도 SQL오버랩운영자가 지원됩니다 :
( start1, end1) 중첩 (start2, end2 ) ( start1, 길이 1) 중첩 (start2, 길이 2 )
이 표현은 두 시간 ( 그들의 종말점) 중첩, 겹치지 않을 때 거짓. 그만큼 엔드 포인트는 스포츠 토토 베트맨, 시간 또는 시간 쌍으로 지정할 수 있습니다. 우표; 또는 스포츠 토토 베트맨, 시간 또는 타임 스탬프 다음에 간격.
선택 (스포츠 토토 베트맨 '2001-02-16', 스포츠 토토 베트맨 '2001-12-21') 중첩 (스포츠 토토 베트맨 '2001-10-30', 스포츠 토토 베트맨 '2002-10-30');결과 :true선택 ( '2001-02-16', 간격 '100 일') 중첩 (스포츠 토토 베트맨 '2001-10-30', 스포츠 토토 베트맨 '2002-10-30');결과 :거짓
Extract
, date_part
Extract (필드From소스)
theExtract
함수 검색
스포츠 토토 베트맨/시간 값에서 연도 또는 시간과 같은 하위 필드.소스값이어야합니다
유형의 표현타임 스탬프, Time또는간격.
(유형의 표현스포츠 토토 베트맨타임 스탬프따라서 다음과 같이 사용할 수 있습니다
잘.)필드는 식별자입니다
또는 소스에서 추출 할 필드를 선택하는 문자열
값. 그만큼Extract
함수
유형의 값을 반환이중 정밀.
다음은 유효한 필드 이름입니다.
세기
추출을 선택하십시오 (Timestamp '2000-12-16 12:21:13');결과 :20Extract (TimeStamp '2001-02-16 20:38:40'에서 Century);결과 :21
1 세기는 0001-01-01 00:00:00에서 시작합니다. 그들은 당시 그것을 몰랐지만. 이것 정의는 모든 Gregorian 달력 국가에 적용됩니다. Century Number 0이없고 -1에서 1로갑니다. 이것에 동의하지 않으면, 당신의 불만을 다음과 같이 작성하십시오 : Pope, 바티칸 로마의 대성당 생피터.
PostgreSQL릴리스 8.0 이전에는 기존의 번호를 따르지 않았습니다 수세기 동안 방금 올해의 필드를 나누었습니다 100.
The Day (월) 필드 (1-31)
추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :16
연도 필드는 10으로 나눈
추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :200
요일 (0-6; 일요일은 0) (for타임 스탬프값 만 해당)
추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :5
참고추출물
의 날
금주의 번호 매기기는의 번호 매기기와 다릅니다.TO_CHAR
기능.
올해의 날 (1-365/366) (for타임 스탬프값 만 해당)
추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :47
for스포츠 토토 베트맨and타임 스탬프값, 이후 몇 초 1970-01-01 00 : 00 : 00-00 (음수 일 수 있음); 을 위한간격값, 총 몇 초 간격으로
추출을 선택하십시오 (TimeStamp with Time Zone '2001-02-16 20 : 38 : 40-08');결과 :982384720Extract (Epoch from interval '5 Days 3 시간');를 선택하십시오.결과 :442800
에포크 값을 다시 변환 할 수있는 방법은 다음과 같습니다. 타임 스탬프 :
Time Zone 'epoch' + 982384720을 사용하여 타임 스탬프를 선택하십시오 * 간격 '1 초';
시간 필드 (0-23)
추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :20
분수 부품을 포함한 초 필드, 1,000 000을 곱합니다. 여기에는 전체가 포함됩니다. 초.
추출을 선택하십시오 (Time '17 : 12 : 28.5 '의 마이크로 초);결과 :28500000
밀레니엄
추출물 선택 (Timestamp '2001-02-16 20:38:40');결과 :3
1900 년대의 몇 년은 2 천년입니다. 그만큼 3 천년은 2001 년 1 월 1 일에 시작됩니다.
PostgreSQL릴리스 8.0 이전에는 기존의 번호를 따르지 않았습니다 수천 년이지만 방금 올해의 필드를 분할했습니다 1000.
분수 부품을 포함한 초 필드, 1000을 곱합니다. 여기에는 전체가 포함됩니다 초.
추출물 선택 (Time '17 : 12 : 28.5 '에서 밀리 초);결과 :28500
분 필드 (0-59)
추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :38
for타임 스탬프값, 숫자 한 해의 달 (1-12); 을 위한간격Modulo의 달 수를 평가합니다 12 (0-11)
추출을 선택하십시오 (TimeStamp '2001-02-16 20:38:40');결과 :2추출을 선택하십시오 (매월 '2 년 3 개월');결과 :3추출을 선택하십시오 (매월 '2 년 13 개월');결과 :1
그날의 1/4 분기 (1-4) (을 위한타임 스탬프값 만 해당)
추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :1
분수 부품을 포함한 초 필드 (0- 59[1])
추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :40추출을 선택하십시오 (두 번째 시간 '17 : 12 : 28.5 ');결과 :28.5
몇 초 만에 측정 된 UTC에서 시간대 오프셋. 양수 값은 UTC의 동쪽에있는 시간대에 해당합니다. UTC의 서쪽 구역에 대한 부정적인 값
시간대 오프셋의 시간 구성 요소
시간대 오프셋의 미세 구성 요소
그 날이있는 연도의 주 수. 정의에 따라 (ISO8601), 첫 주에는 1 월 4 일에 그해. (그만큼ISO-8601 주 월요일에 시작됩니다.) 즉, 1 년의 첫 번째 목요일은 1 주차입니다. 그해. (을 위한타임 스탬프값 오직)
이 때문에 1 월 초에 가능합니다 이전 52 주 또는 53 주의 일부가 될 스포츠 토토 베트맨 년도. 예를 들어,2005-01-01IS 2004 년 53 주,2006-01-0152 주 중 일부입니다 2005 년.
추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :7
올해 필드. 없음을 명심하십시오0 AD, So SubcractingBCad연도는 조심스럽게 이루어져야합니다.
추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :2001
theExtract
함수는입니다
주로 계산 처리를위한 것입니다. 서식을 위해
디스플레이 스포츠 토토 베트맨/시간 값, 참조섹션 9.8.
thedate_part
함수는입니다
전통적으로 모델링IngresSQL-스탠드 함수추출물
:
date_part ( '필드', 소스)
여기서필드매개 변수는 이름이 아닌 문자열 값이어야합니다. 유효한
필드 이름date_part
동일추출물
.
date_part를 선택하십시오 ( 'day', timestamp '2001-02-16 20:38:40');결과 :16date_part ( '시간', 간격 '4 시간 3 분'); 선택결과 :4
date_trunc
함수date_trunc
is
개념적으로Trunc
숫자에 대한 기능.
date_trunc ( '필드', 소스)
소스는 값 표현식입니다 유형타임 스탬프또는간격. (유형의 값스포츠 토토 베트맨andTime캐스트됩니다 자동으로,타임 스탬프또는간격각각.)필드정밀도를 선택합니다 입력 값을 잘라냅니다. 반환 값은 유형입니다타임 스탬프또는간격덜 중요하지 않은 모든 필드 선택한 하나보다 0으로 설정된 것보다 (또는 하루 동안, 월).
유효한 값필드are :
마이크로 초 |
milliseconds |
Second |
Minute |
Hour |
day |
Week |
Month |
Quarter |
year |
10 년 |
Century |
밀레니엄 |
예 :
date_trunc ( '시간', 타임 스탬프 '2001-02-16 20:38:40'); 선택결과 :2001-02-16 20:00:00date_trunc ( 'year', timestamp '2001-02-16 20:38:40'); 선택결과 :2001-01-01 00:00:00
the시간대에서구성 허용 타임 스탬프가 다른 시간대로 변환.테이블 9-27변형을 보여줍니다.
표 9-27.시간에 존변형
표현 | 반환 유형 | 설명 |
---|---|---|
타임 스탬프 시간대없이시간대에서Zone | 시간대가있는 타임 스탬프 | 주어진 시간대의 현지 시간을 UTC로 변환 |
타임 스탬프와 함께 시간대at Time ZoneZone | 시간이없는 타임 스탬프 존 | 주어진 시간대에서 UTC를 현지 시간으로 변환 |
시간이있는 시간 존at Time ZoneZone | 시간대가있는 시간 | 시간 영역에서 현지 시간 변환 |
이 표현에서 원하는 시간대Zone텍스트로 지정할 수 있습니다 문자열 (예 :'PST') 또는 간격으로 (예 :간격 '-08 : 00'). 텍스트에서 사례, 사용 가능한 영역 이름은에 표시된 영역 이름입니다.테이블 B-4. (보다 일반적인 이름을 지원하는 것이 유용 할 것입니다. 표시테이블 B-6, 그러나 이것은 아직 구현되지 않았습니다.)
예제 (현지 시간대가라고 가정합니다.pst8pdt):
타임 스탬프 '2001-02-16 20:38:40'At Time Zone 'MST'; 선택하십시오.결과 :2001-02-16 19:38:40-08타임 존 '2001-02-16 20 : 38 : 40-05'at Time Zone 'MST';로 타임 스탬프를 선택하십시오.결과 :2001-02-16 18:38:40
첫 번째 예제는 영역이없는 시간 스탬프를 사용합니다 UTC 타임 스탬프를 생성하기 위해 MST 시간 (UTC-7)으로 해석합니다. 그런 다음 디스플레이를 위해 PST (UTC-8)로 회전합니다. 두 번째 예제는 EST (UTC-5) 및 MST (UTC-7)에서 현지 시간으로 전환합니다.
함수TimeZone
(Zone, 타임 스탬프)와 동일합니다
SQL 구성 구성타임 스탬프at Time ZoneZone.
전류를 얻기 위해 다음 기능을 사용할 수 있습니다 스포츠 토토 베트맨 및/또는 시간 :
current_date current_time current_timestamp current_time (정밀) current_timestamp (정밀) 로컬 타임 localtimestamp 로컬 타임 (정밀) LocalTimestamp (정밀 )
current_time
andcurrent_timestamp
시간이 지남에 따라 값을 전달하십시오
존;LocalTime
및LocalTimestamp
시간없이 값을 전달합니다
존.
current_time
, current_timestamp
, 로컬 타임
및LocalTimestamp
선택적으로 주어질 수 있습니다
결과를 반올림하는 정밀 매개 변수
초 분야의 많은 분수 숫자. a
정밀 매개 변수, 결과는 사용 가능한 전체에 제공됩니다.
정도.
참고 :이전PostgreSQL7.2, 정밀도 매개 변수는 구현되지 않았으며 결과는 항상있었습니다 정수 초에 주어진 것.
일부 예 :
current_time을 선택하십시오;결과 :14:39:53.662522-05current_date; 선택결과 :2001-12-23select current_timestamp;결과 :2001-12-23 14:39:53.662522-05current_timestamp (2); 선택결과 :2001-12-23 14:39:53.66-05LocalTimestamp를 선택하십시오.결과 :2001-12-23 14:39:53.662522
함수now ()
입니다
전통적인PostgreSQL동등한current_timestamp
.
함수도 있습니다TimeOfday ()
, 역사적 이유로
a 반환텍스트a가 아닌 문자열타임 스탬프값 :
timeofday (); 선택결과 :Sat Feb 17 19 : 07 : 32.000126 2001 EST
그것을 아는 것이 중요합니다current_timestamp
및 관련 기능
현재 거래의 시작 시간을 반환하십시오. 그들의 가치
거래 중에 변경하지 마십시오. 이것은 a로 간주됩니다
기능 : 의도는 단일 거래가
일관된 개념"현재"시간, 동일 내의 다중 수정
트랜잭션은 같은 타임 스탬프를 부여합니다.TimeOfday ()
벽 클록 시간을 반환합니다
거래 중에 발전합니다.
참고 :다른 데이터베이스 시스템이이를 발전시킬 수 있습니다 더 자주 가치.
모든 스포츠 토토 베트맨/시간 데이터 유형은 특별한 리터럴도 허용합니다. 값now현재 스포츠 토토 베트맨를 지정하려면 그리고 시간. 따라서 다음 세 가지 모두 동일하게 반환합니다 결과:
current_timestamp 선택; 지금 ()을 선택하십시오. 타임 스탬프 '지금'; 선택
팁 :a 지정기본조항 테이블 만들기. 시스템이 변환됩니다nowto a타임 스탬프AS 상수가 구문 분석 되 자마자 기본값이 가치가 필요하고, 테이블 생성 시간은 사용된! 처음 두 형태는 기본값은 함수 호출이기 때문에 사용됩니다. 따라서 그들은 원하는 불이행의 행동을 줄 것입니다. 행 삽입 시간.
[1] |
60 운영에 의해 도약 초가 구현되면 체계 |