표 9-26토토 사이트/시간 값 처리에 사용 가능한 기능이 표시됩니다. 다음 하위 섹션에 세부 사항이 나타납니다.표 9-25기본 산술 연산자의 동작을 보여줍니다 (+, *등). 함수 서식에 대해서는를 참조하십시오.섹션 9.8. 당신은해야합니다 토토 사이트/시간 데이터 유형에 대한 배경 정보에 익숙합니다 에서PostgreSQL : 문서 : 8.1 : 날짜/배트맨 토토 유형.
아래에 설명 된 모든 기능 및 연산자Time또는타임 스탬프입력은 실제로 두 가지 변형으로 제공됩니다.토토 사이트대가있는 토토 사이트또는타임 스탬프 토토 사이트대와 함께그리고 가져가는 것이토토 사이트 토토 사이트대없이또는시간이없는 타임 스탬프 존. 간결하게, 이러한 변종은 별도로 표시되지 않습니다. 또한,+and*운영자는 정류 쌍으로 제공됩니다 (예 : 토토 사이트 + 정수 및 정수 + 토토 사이트); 우리는 각각 중 하나만 보여줍니다 그런 쌍.
표 9-25. 토토 사이트/시간 운영자
운영자 | example | 결과 |
---|---|---|
+ | 토토 사이트 '2001-09-28' + 정수 '7' | 토토 사이트 '2001-10-05' |
+ | 토토 사이트 '2001-09-28' + 간격 '1 시간' | 타임 스탬프 '2001-09-28 01:00:00 ' |
+ | 토토 사이트 '2001-09-28' + 시간 '03 : 00 ' | 타임 스탬프 '2001-09-28 03:00:00 ' |
+ | 간격 '1 일' + 간격 '1 토토 사이트' | 간격 '1 일 01:00:00 ' |
+ | 타임 스탬프 '2001-09-28 01:00' + 간격 '23 시간 ' | 타임 스탬프 '2001-09-29 00:00:00 ' |
+ | Time '01 : 00 ' + 간격'3 시간 ' | Time '04 : 00 : 00 ' |
- | - 간격 '23 토토 사이트 ' | 간격 '-23 : 00 : 00' |
- | 토토 사이트 '2001-10-01'-토토 사이트 '2001-09-28' | 정수 '3' |
- | 토토 사이트 '2001-10-01'-정수 '7' | 토토 사이트 '2001-09-24' |
- | 토토 사이트 '2001-09-28'-간격 '1 시간' | 타임 스탬프 '2001-09-27 23:00:00 ' |
- | Time '05 : 00 ' - 시간 '03 : 00 ' | Interval '02 : 00 : 00 ' |
- | Time '05 : 00 ' - 간격'2 시간 ' | Time '03 : 00 : 00 ' |
- | 타임 스탬프 '2001-09-28 23:00'- 간격 '23 시간 ' | 타임 스탬프 '2001-09-28 00:00:00 ' |
- | 간격 '1 일' - 간격 '1 토토 사이트' | 간격 '1 일 -01 : 00 : 00 ' |
- | 타임 스탬프 '2001-09-29 03:00'- 타임 스탬프 '2001-09-27 12:00' | 간격 '1 일 15:00:00 ' |
* | 900 * 간격 '1 두번째' | Interval '00 : 15 : 00 ' |
* | 21 * interval '1 day' | 간격 '21 일 ' |
* | 이중 정밀도 '3.5' * 간격 '1 토토 사이트' | 간격 '03 : 30 : 00 ' |
/ | 간격 '1 토토 사이트' / 이중 정밀도 '1.5' | Interval '00 : 40 : 00 ' |
표 9-26. 토토 사이트/시간 기능
기능 | 반환 유형 | 설명 | example | 결과 |
---|---|---|---|---|
Age (타임 스탬프,
타임 스탬프) |
간격 | 인수를 빼고 a"Symbolic"연도를 사용한 결과 달 | Age (Timestamp '2001-04-10', 타임 스탬프 '1957-06-13') | 43 세 9 몬 몬 27 일 |
Age (타임 스탬프) |
간격 | 에서 빼기current_date |
시대 (타임 스탬프 '1957-06-13') | 43 년 8 몬 몬 3 일 |
current_date |
토토 사이트 | 오늘의 토토 사이트; 보다섹션 9.9.4 | ||
current_time |
토토 사이트대가있는 토토 사이트 | 토토 사이트의 토토 사이트; 보다섹션 9.9.4 | ||
current_timestamp |
시간대가있는 타임 스탬프 | 토토 사이트와 시간; 보다섹션 9.9.4 | ||
date_part (텍스트,
타임 스탬프) |
이중 정밀 | 서브 필드 얻기 (추출물 ); 보다섹션
9.9.1 |
date_part ( '시간', 타임 스탬프 '2001-02-16 20:38:40') | 20 |
date_part (텍스트,
간격) |
이중 정밀 | 서브 필드 받기 (동등한추출물 ); 보다섹션
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 | extract(hour from timestamp '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 |
Justify_hours (간격) |
간격 | 24 시간 동안 간격을 조정하십시오 일로 표시 | Justify_hours (Interval '24 시간 ') | 1 일 |
Justify_Days (간격) |
interval | 30 일 동안의 간격을 조정하십시오 개월로 표시 | Justify_days (Interval '30 날') | 1 개월 |
LocalTime |
Time | 토토 사이트의 토토 사이트; 보다섹션 9.9.4 | ||
LocalTimestamp |
타임 스탬프 | 토토 사이트와 시간; 보다섹션 9.9.4 | ||
now () |
시간대가있는 타임 스탬프 | 현재 토토 사이트 및 시간 (동등한current_timestamp ); 보다섹션
9.9.4 |
||
Timeofday () |
텍스트 | 현재 토토 사이트 및 시간; 보다섹션 9.9.4 |
둘 다 사용중인 경우Justify_hours
및Justify_Days
, 사용하는 것이 가장 좋습니다Justify_hours
먼저 추가 요일이됩니다
에 포함Justify_Days
계산.
이러한 함수 외에도 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');결과 :false
추가 할 때간격값으로 (또는 SUPTRANTING an간격값에서) a시간대가있는 타임 스탬프가치, 일 구성 요소 발전 (또는 감소) 토토 사이트시간대가있는 타임 스탬프표시된 수에 의해 날. 일광 절약 토토 사이트 절약 토토 사이트 변경 (세션 토토 사이트과 함께 구역은 DST를 인식하는 토토 사이트대에 설정된 경우))간격 '1 일'반드시 그런 것은 아닙니다 동일한간격 '24 시간 '. 예를 들어, 세션 토토 사이트대가 설정되어CST7CDT, 시간이 지남에 따라 타임 스탬프 Zone '2005-04-02 12 : 00-07' + 간격 '1 일'생산할 것입니다시간대가있는 타임 스탬프 '2005-04-03 12 : 00-06 ', 추가 중간격 '24 시간 '동일한 초기타임 스탬프와 함께 시간대생산시간이 지남에 따라 타임 스탬프 Zone '2005-04-03 13 : 00-06', 일광이 변경되므로 토토 사이트 절약2005-04-03 02:00제 토토 사이트에 존CST7CDT.
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.
하루 (월) 필드 (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
참고Extract
의 날
금주의 번호 매기기는의 번호 매기기와 다릅니다.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');.결과 :982384720추출을 선택하십시오 (Epoch from interval '5 Days 3 시간');결과 :442800
에포크 값을 다시 변환 할 수있는 방법은 다음과 같습니다. 타임 스탬프 :
타임 존 'Epoch' + 982384720 * 간격 '1 초';가있는 타임 스탬프를 선택하십시오.
시간 필드 (0-23)
추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :20
분수 부품을 포함한 초 필드, 1,000 000을 곱합니다. 여기에는 전체가 포함됩니다. 초.
추출을 선택하십시오 (Time '17 : 12 : 28.5 '의 마이크로 초);결과 :28500000
밀레니엄
Extract Extract (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 개월');결과 :3Extract를 선택하십시오 (매달 간격 '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추출을 선택하십시오 (Time From '17 : 12 : 28.5 ');결과 :28.5
The time zone offset from UTC, measured in seconds. 양수 값은 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 SUTCARTINGBCad연년군은 조심해야합니다.
추출을 선택하십시오 (Timestamp '2001-02-16 20:38:40');결과 :2001
theExtract
함수는입니다
주로 계산 처리를위한 것입니다. 서식을 위해
디스플레이 토토 사이트/시간 값, 참조섹션 9.8.
thedate_part
함수는입니다
전통적으로 모델링IngresSQL-스탠드 함수Extract
:
date_part ( '필드',소스)
여기서필드매개 변수는 이름이 아닌 문자열 값이어야합니다. 유효한
필드 이름date_part
동일Extract
.
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 |
주 |
Month |
쿼터 |
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.토토 사이트에 존변형
표현 | 반환 유형 | 설명 |
---|---|---|
타임 스탬프 시간대없이at Time Zonezone | 시간대가있는 타임 스탬프 | 주어진 토토 사이트 스탬프 처리토토 사이트대가없는AS 지정된 토토 사이트대에 위치 |
타임 스탬프와 함께 시간대토토 사이트대에서Zone | 시간이없는 타임 스탬프 존 | 주어진 타임 스탬프 변환토토 사이트대와 함께새로 토토 사이트대 |
토토 사이트이 지남에 따라 토토 사이트 존토토 사이트대에서Zone | 토토 사이트대가있는 토토 사이트 | 주어진 토토 사이트 변환토토 사이트대와 함께새로 토토 사이트대 |
이 표현에서 원하는 시간대Zone텍스트로 지정할 수 있습니다 문자열 (예 :'PST') 또는 간격으로 (예 :간격 '-08 : 00'). 텍스트에서 사례, 사용 가능한 영역 이름은 어느 쪽이든 표시입니다.테이블 B-6또는테이블 B-4.
예제 (현지 토토 사이트대가pst8pdt) :
TimeStamp '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
첫 번째 예제는 토토 사이트대가없는 타임 스탬프를 사용합니다. MST 시간 (UTC-7)으로 해석 한 다음 변환됩니다. 디스플레이 용 PST (UTC-8). 두 번째 예제는 타임 스탬프가 필요합니다 EST (UTC-5)에 지정되어 MST의 현지 시간으로 변환합니다. (UTC-7).
함수TIMEZONE
(Zone, 타임 스탬프)와 동일합니다
SQL 구성 구성타임 스탬프토토 사이트대에서Zone.
전류를 얻기 위해 다음 기능을 사용할 수 있습니다 토토 사이트 및/또는 시간 :
current_date current_time current_timestamp current_time (정밀) current_timestamp (정밀) 로컬 타임 localtimestamp 로컬 타임 (정밀) LocalTimestamp (정밀)
current_time
및current_timestamp
토토 사이트이 지남에 따라 값을 전달하십시오
존;LocalTime
andLocalTimestamp
토토 사이트없이 값을 전달합니다
존.
current_time
, current_timestamp
, LocalTime
및LocalTimestamp
선택적으로 주어질 수 있습니다
결과를 반올림하는 정밀 매개 변수
초 분야의 많은 분수 숫자. a
정밀 매개 변수, 결과는 사용 가능한 전체에 제공됩니다.
정도.
참고 :이전PostgreSQL7.2, 정밀도 매개 변수는 구현되지 않았으며 결과는 항상있었습니다 정수 초에 주어진 것.
일부 예 :
current_time을 선택하십시오;결과 :14:39:53.662522-05current_date; 선택결과 :2001-12-23current_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
.
그것을 아는 것이 중요합니다current_timestamp
및 관련 기능
현재 거래의 시작 시간을 반환하십시오. 그들의 가치
거래 중에 변경하지 마십시오. 이것은 a로 간주됩니다
기능 : 의도는 단일 거래가
일관된 개념"현재"시간, 동일하게 다중 수정
트랜잭션은 같은 타임 스탬프를 부여합니다.
참고 :다른 데이터베이스 시스템이이를 발전시킬 수 있습니다 더 자주 가치.
함수도 있습니다TimeOfday ()
벽 클록 토토 사이트을 반환합니다
거래 중 발전. 역사적 이유로TimeOfday ()
a 반환텍스트a가 아닌 문자열타임 스탬프값 :
timeofday (); 선택결과 :Sat Feb 17 19 : 07 : 32.000126 2001 EST
모든 토토 사이트/시간 데이터 유형은 특별한 리터럴도 허용합니다. 값지금현재 토토 사이트를 지정하려면 그리고 시간. 따라서 다음 세 가지 모두 동일하게 반환합니다 결과:
select current_timestamp; 지금 ()을 선택하십시오. 타임 스탬프 '지금'을 선택하십시오. - 기본값과 함께 사용하기에 잘못된
팁 :a 지정기본값조항 테이블 만들기. 시스템이 변환됩니다nowto a타임 스탬프AS 상수가 구문 분석 되 자마자 기본값이 가치가 필요하고, 테이블 생성 시간은 사용된! 처음 두 형태는 기본값은 함수 호출이기 때문에 사용됩니다. 따라서 그들은 원하는 불이행의 행동을 줄 것입니다. 행 삽입 시간.
[1] |
60 운영에 의해 도약 초가 구현되면 체계 |