| 윈 토토 : 문서 : 9.4 : 윈 토토 | |||
|---|---|---|---|
| PostgreSQL : 문서 : 9.4 : 토토 사이트 순위 토토 사이트 순위 토토 사이트 순위 토토 사이트 순위 기능 | PostgreSQL : 문서 : 9.4 : 스포츠 토토 결과 및 연산자 | 9장. 함수 및 연산자 | 스포츠 토토 사이트 : 문서 : 9.4 : Enum Support Functions |
표 9-28날짜/윈 토토 값 처리에 사용할 수 있는 함수를 표시하며 자세한 내용은 다음 하위 섹션에 나와 있습니다.표 9-27기본 산술 연산자의 동작을 설명합니다(+, *등). 서식 지정 기능은 다음을 참조하세요.PostgreSQL : 문서 : 9.4 : 토토 사이트 순위 토토 사이트 순위 토토 사이트 순위 토토 사이트 순위 기능. 의 날짜/윈 토토 데이터 유형에 대한 배경 정보를 잘 알고 있어야 합니다.PostgreSQL : 문서 : 9.4 : 날짜/범퍼카 토토 유형.
아래에 설명된 모든 함수와 연산자는 다음을 수행합니다.윈 토토또는타임스탬프입력은 실제로 두 가지 변형으로 제공됩니다. 하나는 다음과 같습니다.윈 토토대 포함 윈 토토또는윈 토토대가 포함된 타임스탬프, 그리고 걸리는 것윈 토토대가 없는 윈 토토또는윈 토토대가 없는 타임스탬프. 간결성을 위해 이러한 변형은 별도로 표시되지 않습니다. 또한,+그리고*연산자는 교환 가능한 쌍으로 제공됩니다(예: 날짜 + 정수 및 정수 + 날짜 모두). 우리는 각 쌍 중 하나만 표시합니다.
표 9-27. 날짜/윈 토토 연산자
| 운영자 | 예 | 결과 |
|---|---|---|
| + | 날짜 '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' |
| + | 윈 토토 '01:00' + 간격 '3윈 토토' | 윈 토토 '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' |
| - | 윈 토토 '05:00' - 윈 토토 '03:00' | 간격 '02:00:00' |
| - | 윈 토토 '05:00' - 간격 '2윈 토토' | 윈 토토 '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초' | 간격 '00:15:00' |
| * | 21 * 간격 '1일' | 간격 '21일' |
| * | 배정밀도 '3.5' * 간격 '1윈 토토' | 간격 '03:30:00' |
| / | 간격 '1윈 토토' / 배정밀도 '1.5' | 간격 '00:40:00' |
표 9-28. 날짜/윈 토토 함수
| 기능 | 반환 유형 | 설명 | 예 | 결과 |
|---|---|---|---|---|
나이(타임스탬프, 타임스탬프) |
간격 | 인수를 빼서 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 | ||
현재_타임스탬프 |
윈 토토대가 포함된 타임스탬프 | 현재 날짜 및 윈 토토(현재 거래 시작); 참조섹션 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 |
date_trunc(텍스트, 간격) |
간격 | 지정된 정밀도로 자릅니다. 또한 참조섹션 9.9.2 | date_trunc('윈 토토', 간격 '2일 3윈 토토 40분') | 2일 03:00:00 |
추출(필드from타임스탬프) |
배정밀도 | 하위 필드 가져오기; 참조섹션 9.9.1 | 추출(타임스탬프 '2001-02-16 20:38:40'의 윈 토토) | 20 |
추출(필드from간격) |
배정밀도 | 하위 필드 가져오기; 참조섹션 9.9.1 | 추출('2년 3개월' 간격의 월) | 3 |
무한(날짜) |
부울 | 유한 날짜 테스트(+/-무한대 아님) | isfinite(날짜 '2001-02-16') | 참 |
무한(타임스탬프) |
부울 | 유한한 타임 스탬프 테스트(+/-무한대 아님) | isfinite(타임스탬프 '2001-02-16 21:28:30') | 참 |
무한(간격) |
부울 | 유한 간격 테스트 | isfinite(간격 '4윈 토토') | 참 |
justify_days(간격) |
간격 | 30일 기간이 월로 표시되도록 간격을 조정 | justify_days(간격 '35일') | 1월 5일 |
justify_hours(간격) |
간격 | 24윈 토토 기간이 일로 표시되도록 간격을 조정 | justify_hours(간격 '27윈 토토') | 1일 03:00:00 |
justify_interval(간격) |
간격 | 다음을 사용하여 간격 조정justify_days그리고justify_hours, 추가 부호 조정 포함 |
justify_interval(간격 '1개월 -1윈 토토') | 29일 23:00:00 |
현지윈 토토 |
윈 토토 | 현재 윈 토토; 참조섹션 9.9.4 | ||
localtimestamp |
타임스탬프 | 현재 날짜 및 윈 토토(현재 거래 시작); 참조섹션 9.9.4 | ||
make_date(년 int, 월 int, 일 int) |
날짜 | 연도, 월, 일 필드에서 날짜 생성 | make_date(2013, 7, 15) | 2013-07-15 |
make_interval(년 int기본값 0,개월 int기본값 0,주 int기본값 0,일 int기본값 0,윈 토토 int기본값 0,분 int기본값 0,초 이중 정밀도기본값 0.0) |
간격 | 년, 월, 주, 일, 시, 분, 초 필드에서 간격 생성 | make_interval(days := 10) | 10일 |
make_time(윈 토토 int, 분 int, 초 배정밀도) |
윈 토토 | 시, 분, 초 필드에서 윈 토토 생성 | make_time(8, 15, 23.5) | 08:15:23.5 |
make_timestamp(년 int, 월 int, 일 int, 윈 토토 int, 분 int, 초 배정밀도) |
타임스탬프 | 연도, 월, 일, 시, 분, 초 필드에서 타임스탬프 생성 | make_timestamp(2013, 7, 15, 8, 15, 23.5) | 2013-07-15 08:15:23.5 |
make_timestamptz(년 int, 월 int, 일 int, 윈 토토 int, 분 int, 초 배정밀도, [ 윈 토토대 텍스트 ]) |
윈 토토대가 포함된 타임스탬프 | 연도, 월, 일, 시, 분, 초 필드의 윈 토토대가 포함된 타임스탬프를 생성합니다. 언제윈 토토대지정되지 않은 경우 현재 윈 토토대가 사용됩니다. | make_timestamptz(2013, 7, 15, 8, 15, 23.5) | 2013-07-15 08:15:23.5+01 |
지금() |
윈 토토대가 포함된 타임스탬프 | 현재 날짜 및 윈 토토(현재 거래 시작); 참조섹션 9.9.4 | ||
statement_timestamp() |
윈 토토대가 포함된 타임스탬프 | 현재 날짜 및 윈 토토(현재 명령문의 시작); 참조섹션 9.9.4 | ||
timeofday() |
텍스트 | 현재 날짜 및 윈 토토(예:시계_타임스탬프하지만텍스트문자열); 참조섹션 9.9.4 |
||
transaction_timestamp() |
윈 토토대가 포함된 타임스탬프 | 현재 날짜 및 윈 토토(현재 거래 시작); 참조섹션 9.9.4 |
이러한 기능 외에도 SQL겹침연산자가 지원됩니다:
(시작1, end1) 중복(시작2, end2) (시작1, 길이1) 중복(시작2, 길이2)
이 표현식은 두 기간(종료점에 의해 정의됨)이 겹치면 참이 되고, 겹치지 않으면 거짓이 됩니다. 엔드포인트는 날짜, 윈 토토 또는 타임스탬프 쌍으로 지정할 수 있습니다. 또는 날짜, 윈 토토 또는 타임스탬프 뒤에 간격이 오는 형태로 표시됩니다. 한 쌍의 값이 제공되면 시작 또는 끝이 먼저 기록될 수 있습니다.겹침자동으로 쌍의 이전 값을 시작으로 사용합니다. 각 기간은 반 개방 간격을 나타내는 것으로 간주됩니다.시작 <= 윈 토토 < 끝, 그렇지 않은 경우시작그리고끝동일한 경우 이는 해당 단일 순간을 나타냅니다. 이는 예를 들어 공통 엔드포인트만 있는 두 기간이 겹치지 않음을 의미합니다.
선택(날짜 '2001-02-16', 날짜 '2001-12-21') 겹침
(날짜 '2001-10-30', 날짜 '2002-10-30');결과:사실선택(날짜 '2001-02-16', 간격 '100일') 겹침
(날짜 '2001-10-30', 날짜 '2002-10-30');결과:거짓선택 (날짜 '2001-10-29', 날짜 '2001-10-30') 겹침
(날짜 '2001-10-30', 날짜 '2001-10-31');결과:거짓SELECT (날짜 '2001-10-30', 날짜 '2001-10-30') 겹침
(날짜 '2001-10-30', 날짜 '2001-10-31');결과:참
추가할 때간격값을 (또는 빼기간격값) a윈 토토대가 포함된 타임스탬프값, 일 구성요소는 날짜를 앞당기거나 줄입니다.윈 토토대가 포함된 타임스탬프표시된 일수만큼. 일광 절약 윈 토토제 변경 시(세션 윈 토토대가 DST를 인식하는 윈 토토대로 설정된 경우) 이는 다음을 의미합니다.간격 '1일'반드시 같지는 않음간격 '24윈 토토'. 예를 들어 세션 윈 토토대가CST7CDT, 윈 토토대가 '2005-04-02 12:00-07' + 간격 '1일'인 타임스탬프생산할 것이다윈 토토대가 '2005-04-03 12:00-06'인 타임스탬프, 추가하는 동안간격 '24윈 토토'동일한 이니셜로윈 토토대가 포함된 타임스탬프생산윈 토토대가 '2005-04-03 13:00-06'인 타임스탬프, 일광 절약 윈 토토제 변경으로 인해2005-04-03 02:00윈 토토대CST7CDT.
다음 내용에는 모호함이 있을 수 있습니다.개월다음에 의해 반환된 필드나이달마다 일수가 다르기 때문입니다.PostgreSQL의 접근 방식은 부분 월을 계산할 때 두 날짜 중 빠른 날짜의 월을 사용합니다. 예를 들어,나이('2004-06-01', '2004-04-30')4월을 사용하여 산출합니다1월 1일, May를 사용하면 결과가 나옵니다1월 2일5월은 31일인 반면 4월은 30일밖에 없기 때문입니다.
날짜와 타임스탬프를 빼는 것도 복잡할 수 있습니다. 뺄셈을 수행하는 개념적으로 간단한 방법 중 하나는 다음을 사용하여 각 값을 초 수로 변환하는 것입니다.추출(EPOCH FROM ...), 그런 다음 결과를 뺍니다. 이것은 수를 생성합니다초두 값 사이. 이는 매월 일수, 윈 토토대 변경 및 일광 절약 윈 토토 조정을 조정합니다. 를 사용하여 날짜 또는 타임스탬프 값 빼기"-"연산자는 일수(24윈 토토)와 값 사이의 윈 토토/분/초를 반환하여 동일한 조정을 수행합니다.나이함수는 필드별 뺄셈을 수행한 다음 음수 필드 값을 조정하여 연도, 월, 일 및 시/분/초를 반환합니다. 다음 쿼리는 이러한 접근 방식의 차이점을 보여줍니다. 샘플 결과는윈 토토대 = '미국/동부'; 사용된 두 날짜 사이에 일광 절약 윈 토토제 변경이 있습니다.
추출 선택(EPOCH FROM 타임스탬프tz '2013-07-01 12:00:00') -
EXTRACT(timestamptz '2013-03-01 12:00:00'의 EPOCH);결과:10537200SELECT (EXTRACT(EPOCH FROM 타임스탬프tz '2013-07-01 12:00:00') -
추출(타임스탬프tz '2013-03-01 12:00:00'의 EPOCH))
/ 60 / 60 / 24;결과:121.958333333333SELECT 타임스탬프tz '2013-07-01 12:00:00' - 타임스탬프tz '2013-03-01 12:00:00';결과:121일 23:00:00SELECT age(timestamptz '2013-07-01 12:00:00', timestamptz '2013-03-01 12:00:00');결과:4개월
추출, 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, Cathedral Saint-Peter of Roma, Vatican.
용타임스탬프값, 일(월) 필드(1 - 31) ; 에 대한간격값, 일수
추출물 선택(타임스탬프 '2001-02-16 20:38:40'의 날짜);결과:16추출 선택(간격 '40일 1분'의 날짜);결과:40
연도 필드를 10으로 나눈 값
추출 선택(타임스탬프 '2001-02-16 20:38:40'에서 10년 후);결과:200
요일은 일요일입니다(0) ~ 토요일(6)
추출 선택(타임스탬프의 다우 '2001-02-16 20:38:40');결과:5
참고하세요추출요일 번호 매기기가 해당 요일과 다릅니다.to_char(..., 'D')함수.
연중일(1 - 365/366)
추출 선택(타임스탬프 '2001-02-16 20:38:40'의 DOY);결과:47
용윈 토토대가 포함된 타임스탬프값, 1970-01-01 00:00:00 UTC 이후의 초 수(음수일 수 있음); 에 대한날짜그리고타임스탬프값, 현지 윈 토토 1970-01-01 00:00:00 이후의 초 수; 에 대한간격값, 간격의 총 초 수
추출 선택(윈 토토대가 '2001-02-16 20:38:40.12-08'인 타임스탬프의 에포크);결과:982384720.12추출 선택('5일 3윈 토토' 간격의 에포크);결과:442800
에포크 값을 다시 타임스탬프로 변환하는 방법은 다음과 같습니다.
윈 토토대 '에포크' + 982384720.12 * 간격 '1초'를 사용하여 타임스탬프 선택;
(그to_timestamp함수는 위의 변환을 캡슐화합니다.)
윈 토토 필드(0 - 23)
추출 선택(타임스탬프 '2001-02-16 20:38:40'으로부터 윈 토토);결과:20
요일은 월요일(1) ~ 일요일(7)
추출 선택(타임스탬프의 ISODOW '2001-02-18 20:38:40');결과:7
이것은 다음과 동일합니다다우일요일 제외. 이는 다음과 일치합니다.ISO8601 요일 번호 매기기.
그ISO8601 날짜가 속하는 주 번호 지정 연도(간격에는 적용되지 않음)
추출 선택(날짜 '2006-01-01'의 ISO연도);결과:2005추출 선택('2006-01-02' 날짜의 ISO연도);결과:2006
각각ISO8601 주 번호 지정 연도는 1월 4일이 포함된 주의 월요일로 시작하므로 1월 초 또는 12월 말에 해당ISO연도는 그레고리오력과 다를 수 있습니다. 참조주자세한 내용은 필드를 참조하세요.
이 필드는 8.3 이전의 PostgreSQL 릴리스에서는 사용할 수 없습니다.
소수 부분을 포함한 초 필드에 1 000 000을 곱합니다. 여기에는 전체 초가 포함됩니다.
추출 선택('17:12:28.5' 윈 토토부터 밀리초);결과:28500000천년기
추출 선택(타임스탬프 '2001-02-16 20:38:40'에서 밀레니엄');결과:3
1900년대는 두 번째 천년기에 속합니다. 세 번째 밀레니엄은 2001년 1월 1일에 시작되었습니다.
소수 부분을 포함한 초 필드에 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.5UTC로부터의 윈 토토대 오프셋으로, 초 단위로 측정됩니다. 양수 값은 UTC 동쪽 윈 토토대에 해당하고, 음수 값은 UTC 서쪽 윈 토토대에 해당합니다. (기술적으로는,포스트그레SQL사용UT1윤초는 처리되지 않기 때문입니다.)
윈 토토대 오프셋의 윈 토토 구성요소
윈 토토대 오프셋의 분 구성요소
수ISO8601주-연도의 주입니다. 정의에 따르면 ISO 주는 월요일에 시작되며, 연도의 첫 번째 주는 해당 연도의 1월 4일을 포함합니다. 즉, 한 해의 첫 번째 목요일은 해당 연도의 1주차에 속합니다.
ISO 주 번호 지정 시스템에서는 1월 초 날짜가 전년도의 52번째 또는 53번째 주에 포함될 수 있으며, 12월 말 날짜가 다음 해 첫 번째 주에 포함될 수 있습니다. 예를 들어,2005-01-012004년 53번째 주의 일부이며2006-01-012005년 52번째 주의 일부입니다.2012-12-312013년 첫 번째 주의 일부입니다. 다음을 사용하는 것이 좋습니다.isoyear필드와 함께주일관된 결과를 얻으려면.
추출 선택(타임스탬프 '2001-02-16 20:38:40'의 주);결과:7
연도 필드입니다. 없다는 점을 명심하세요.0 AD그러므로 빼기BC년부터AD한 해를 조심스럽게 보내야 합니다.
추출물 선택(타임스탬프 '2001-02-16 20:38:40'의 연도);결과:2001
그추출함수는 주로 계산 처리를 위한 것입니다. 표시할 날짜/윈 토토 값의 형식을 지정하려면 다음을 참조하세요.PostgreSQL : 문서 : 9.4 : 토토 사이트 순위 토토 사이트 순위 토토 사이트 순위 토토 사이트 순위 기능.
그date_part함수는 기존 함수를 모델로 합니다.앵그르에 해당SQL-표준 함수추출:
날짜_부분('필드', 출처)
여기에 주의하세요필드매개변수는 이름이 아닌 문자열 값이어야 합니다. 에 대한 유효한 필드 이름date_part다음과 동일합니다추출.
SELECT 날짜_부분('일', TIMESTAMP '2001-02-16 20:38:40');결과:16SELECT date_part('윈 토토', INTERVAL '4윈 토토 3분');결과:4date_trunc함수date_trunc개념적으로는와 유사합니다.트렁크숫자에 대한 함수입니다.
date_trunc('필드', 출처)
출처유형의 값 표현식입니다.타임스탬프또는간격. (유형 값날짜그리고윈 토토다음으로 자동 전송됩니다.타임스탬프또는간격각각.)필드입력 값을 자를 정밀도를 선택합니다. 반환 값은 다음 유형입니다.타임스탬프또는간격선택한 필드보다 중요하지 않은 모든 필드는 0(또는 일과 월의 경우 1)으로 설정됩니다.
유효한 값필드다음은:
| 마이크로초 |
| 밀리초 |
| 초 |
| 분 |
| 윈 토토 |
| 일 |
| 주 |
| 월 |
| 분기 |
| 년 |
| 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-29변형을 보여줍니다.
표 9-29.윈 토토대변종
| 표현 | 반환 유형 | 설명 |
|---|---|---|
| 윈 토토대 없는 타임스탬프윈 토토대영역 | 윈 토토대가 포함된 타임스탬프 | 주어진 타임 스탬프 처리윈 토토대 없음지정된 윈 토토대에 위치함 |
| 윈 토토대가 포함된 타임스탬프윈 토토대영역 | 윈 토토대 없는 타임스탬프 | 주어진 타임스탬프를 변환윈 토토대 포함윈 토토대 지정 없이 새 윈 토토대로 |
| 윈 토토대 포함 윈 토토윈 토토대영역 | 윈 토토대 포함 윈 토토 | 주어진 윈 토토을 변환윈 토토대 포함새 윈 토토대로 |
이 표현식에서는 원하는 윈 토토대영역텍스트 문자열(예:'미국/로스앤젤레스') 또는 간격으로(예:간격 '-08:00'). 텍스트의 경우 윈 토토대 이름은 다음에 설명된 방법 중 하나로 지정할 수 있습니다.섹션 8.5.3.
예(현지 윈 토토대가 다음과 같다고 가정미국/Los_Angeles):
윈 토토대 'America/Denver'에서 타임스탬프 '2001-02-16 20:38:40' 선택;결과:2001-02-16 19:38:40-08윈 토토대 '2001-02-16 20:38:40-05', 윈 토토대 'America/Denver'를 사용하여 타임스탬프 선택;결과:2001-02-16 18:38:40타임스탬프 선택 '2001-02-16 20:38:40-05' AT 타임존 '아시아/도쿄' AT 타임존 '아메리카/시카고';결과:2001-02-16 05:38:40
첫 번째 예에서는 윈 토토대가 부족한 값에 윈 토토대를 추가하고 현재 값을 사용하여 값을 표시합니다.윈 토토대설정. 두 번째 예에서는 윈 토토대 값이 포함된 타임스탬프를 지정된 윈 토토대로 이동하고 윈 토토대가 없는 값을 반환합니다. 이를 통해 현재와 다른 값을 저장하고 표시할 수 있습니다.윈 토토대설정. 세 번째 예에서는 도쿄 윈 토토을 시카고 윈 토토으로 변환합니다. 변환 중윈 토토다른 윈 토토대에 대한 값은 날짜가 제공되지 않았기 때문에 현재 활성화된 윈 토토대 규칙을 사용합니다.
함수윈 토토대(영역, 타임스탬프)SQL 준수 구문과 동일합니다.타임스탬프윈 토토대영역.
PostgreSQL현재 날짜 및 윈 토토과 관련된 값을 반환하는 다양한 함수를 제공합니다. 이러한 SQL 표준 함수는 모두 현재 트랜잭션의 시작 윈 토토을 기준으로 값을 반환합니다.
CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_TIME(정밀도) CURRENT_TIMESTAMP(정밀도) 현지 윈 토토 현지타임스탬프 현지윈 토토(정밀도) 현지타임스탬프(정밀도)
CURRENT_TIME그리고CURRENT_TIMESTAMP윈 토토대로 값을 전달합니다.현지윈 토토그리고현지타임스탬프윈 토토대 없이 값을 전달합니다.
CURRENT_TIME, CURRENT_TIMESTAMP, 현지윈 토토및LOCALTIMESTAMP은 선택적으로 정밀도 매개변수를 취할 수 있으며, 이로 인해 결과는 초 필드에서 해당 소수 자릿수로 반올림됩니다. 정밀도 매개변수가 없으면 결과는 사용 가능한 전체 정밀도로 제공됩니다.
몇 가지 예:
현재_윈 토토 선택;결과: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
이 함수는 현재 트랜잭션의 시작 윈 토토을 반환하므로 해당 값은 트랜잭션 중에 변경되지 않습니다. 이는 기능으로 간주됩니다. 단일 트랜잭션이 일관된 개념을 가질 수 있도록 하는 것이 목적입니다."현재"윈 토토, 동일한 트랜잭션 내의 여러 수정 사항이 동일한 타임스탬프를 갖도록 합니다.
참고:다른 데이터베이스 시스템에서는 이러한 값을 더 자주 높일 수 있습니다.
PostgreSQL또한 현재 명령문의 시작 윈 토토과 함수가 호출되는 순간의 실제 현재 윈 토토을 반환하는 함수를 제공합니다. 비SQL 표준 윈 토토 함수의 전체 목록은 다음과 같습니다.
transaction_timestamp() 문_타임스탬프() 시계_타임스탬프() 윈 토토() 지금()
transaction_timestamp()다음과 동일함CURRENT_TIMESTAMP, 그러나 반환되는 내용을 명확하게 반영하기 위해 이름이 지정되었습니다.statement_timestamp()현재 명령문의 시작 윈 토토(구체적으로는 클라이언트로부터 최신 명령 메시지를 받은 윈 토토)을 반환합니다.statement_timestamp()그리고transaction_timestamp()트랜잭션의 첫 번째 명령 중에는 동일한 값을 반환하지만 후속 명령에서는 다를 수 있습니다.시계_타임스탬프()실제 현재 윈 토토을 반환하므로 단일 SQL 명령 내에서도 해당 값이 변경됩니다.timeofday()역사적입니다PostgreSQL함수. 좋아요시계_타임스탬프(), 실제 현재 윈 토토을 반환하지만 형식이 지정된텍스트a 대신 문자열윈 토토대가 포함된 타임스탬프값.지금()전통적인 것입니다PostgreSQL동등함transaction_timestamp().
모든 날짜/윈 토토 데이터 유형은 특수 리터럴 값도 허용합니다.지금현재 날짜와 윈 토토을 지정합니다(역시 트랜잭션 시작 윈 토토으로 해석됨). 따라서 다음 세 가지 모두 동일한 결과를 반환합니다.
현재_TIMESTAMP 선택; 지금 선택(); 타임스탬프 '지금' 선택; -- DEFAULT와 함께 사용하기에는 올바르지 않습니다.
팁:다음을 지정할 때 세 번째 형식을 사용하고 싶지 않습니다.기본값56832_56890지금에타임스탬프상수가 구문 분석되자마자 기본값이 필요할 때 테이블 생성 윈 토토이 사용됩니다! 처음 두 양식은 함수 호출이기 때문에 기본값이 사용될 때까지 평가되지 않습니다. 따라서 행 삽입 윈 토토을 기본값으로 하는 원하는 동작을 제공합니다.
서버 프로세스의 실행을 지연시키기 위해 다음 기능을 사용할 수 있습니다:
pg_sleep(초) pg_sleep_for(간격) pg_sleep_until(윈 토토대가 포함된 타임스탬프)
pg_sleep다음까지 현재 세션의 프로세스를 휴면 상태로 만듭니다.초초가 경과했습니다.초유형의 값입니다배정밀도이므로 소수점 이하의 지연을 지정할 수 있습니다.pg_sleep_for은(는) 더 긴 수면 윈 토토을 위한 편의 함수입니다.간격. pg_sleep_until은 특정 기상 윈 토토을 원할 때 사용하는 편의 기능입니다. 예를 들면:
SELECT pg_sleep(1.5);
SELECT pg_sleep_for('5분');
SELECT pg_sleep_until('내일 03:00');
참고:휴면 간격의 효과적인 해결 방법은 플랫폼에 따라 다릅니다. 0.01초가 일반적인 값입니다. 수면 지연은 최소한 지정된 기간만큼 길어집니다. 서버 부하 등의 요인에 따라 더 길어질 수도 있습니다. 특히,
pg_sleep_until정확히 지정된 윈 토토에 깨어난다는 보장은 없지만 더 일찍 깨어나지는 않습니다.
| 경고 |
|
호출 시 세션이 필요 이상으로 많은 잠금을 보유하지 않는지 확인하세요 |
| [1] |
60 윤초가 운영 체제에 의해 구현된 경우 |