이 섹션에서는 PostgreSQL 간격 데이터 유형, 그리고 우리도 본다 예 ~의 간격 데이터 유형. 그리고 주로 Interval을 사용함 기능 , 예를 들어, NOW(), TO_CHAR(), EXTRACT(), justify_days(), justify_hours(), justify_interval(). 그만큼 입력과 출력 PostgreSQL 간격 값의 형식입니다.
PostgreSQL 간격 데이터 유형이란 무엇입니까?
PostgreSQL에서는 간격 시간을 저장하고 배포하는 데 사용되는 또 다른 유형의 데이터 유형입니다. 년, 월, 일, 시간, 분, 초, 등등. 그리고 달과 일 값은 정수 값 , 반면에 두 번째 필드 될 수 있다 분수 값.
PostgreSQL 간격 데이터 유형 값에는 다음이 포함됩니다. 16바이트 저장 - 허용 가능한 범위의 마침표를 저장하는 데 도움이 되는 크기 178000000년 ~ 178000000년 연령.
스캐너 스캔 자바
참고: 두 번째 필드에 사용된 분수 자릿수를 정밀도 p라고 합니다.
PostgreSQL 간격 데이터 유형의 구문
PostgreSQL Interval 데이터 유형의 구문은 다음과 같습니다.
@ interval [ fields ] [ (p) ]
위 구문에는 다음과 같은 매개변수가 있습니다.
매개변수 | 설명 |
---|---|
필드 | 필드 매개변수는 시간을 표시하는 데 사용됩니다. |
피 | P는 정밀도 값을 표시하는 데 사용됩니다. |
@ | @ 매개변수는 선택적 매개변수이므로 무시할 수 있습니다. |
간격 값을 작성하는 방법을 더 잘 이해하기 위해 샘플 예를 살펴보겠습니다. ~와 함께 @ 매개변수 및 @ 매개변수 없음 :
@interval '6 months before'; @interval '2 hours 30 minutes';
또는
interval '6 months before'; interval '2 hours 30 minutes';
참고: 위의 두 진술은 서로 대응되므로 사용할 수 있습니다. 또한 간격 값은 허용 범위가 0에서 6까지 시작되는 선택적 정밀도 값 p를 가질 수 있습니다.
PostgreSQL 간격 데이터 유형의 예
한 가지 샘플 예를 통해 어떻게 이해하는지 살펴보겠습니다. PostgreSQL 간격 데이터 유형 공장.
아래 예에서는 시간을 찾으려고 노력할 것입니다. 2시간 30분 전, ~에서 작년 현재 시간 ; 다음 명령을 사용합니다.
SELECT now(), now() - INTERVAL '6 months 2 hours 30 minutes' AS '2 hours 30 minutes before last year';
산출
위의 명령을 실행하면 아래 출력이 표시됩니다. 작년보다 2시간 30분 전 :
우리는 간격 데이터 유형의 주요 예를 보았고 그 작동 방식을 이해했습니다. 이제 입력 및 출력 형식을 살펴보겠습니다. 간격 값.
먼저, 우리는 입력 형식에 대한 PostgreSQL 간격 값 :
PostgreSQL 간격 입력 형식
PostgreSQL에는 다음이 있습니다. 자세한 구문, 이는 간격 값을 작성하는 데 도움이 됩니다.
quantity unit [quantity unit...] [direction]
위 구문에 사용되는 아래 매개변수가 있습니다.
매개변수 | 설명 |
---|---|
수량 | ㅏ 수량 다음과 같은 기호도 허용하는 숫자입니다. + 또는 - |
단위 | 그만큼 단위 무엇이든 될 수 있다 밀레니엄, 세기, 10년, 연도, 월, 주, 일, 시, 분, 초, 밀리초, 마이크로초, 또는 약어는 다음과 같을 수 있습니다 y, m, d 등 복수형은 다음과 같을 수 있습니다. 개월, 일 , 등. |
방향 | 그만큼 방향 매개변수는 이전 또는 빈 문자열입니다. |
참고: 위 구문은 간격 출력 형식에도 사용되며 postgres_verbose라고도 합니다.
아래 예에서는 다음을 사용하는 일부 간격 값을 표시합니다. 자세한 구문 :
INTERVAL '1 year 5 months 5 days'; INTERVAL '1 weeks ago';
ISO 8601 간격 형식
위의 자세한 구문 외에도 다음을 사용하여 간격 값을 작성합니다. ISO 8601 시간 간격을 두고 PostgreSQL은 다음과 같은 두 가지 방법을 제공합니다.
ISO 8601의 지정자 형식은 다음과 같습니다.
P quantity unit [ quantity unit ...] [ T [ quantity unit ...]]
위 형식에서 필수 간격 값은 편지 P , 그리고 문자 T 을 정의하는 데 사용됩니다. 시간 단위 .
아래 표는 ISO 8601 간격 단위 약어:
약어 | 설명 |
---|---|
그리고 | 연령 |
중 | 월(날짜 부분) |
안에 | 주 |
디 | 날 |
시간 | 시간 |
중 | 분(시간 부분) |
에스 | 초 |
참고: M은 문자 T 앞인지 뒤에 있는지에 따라 월 또는 분이 될 수 있습니다.
예를 들어 보겠습니다. ISO 8601 지정자 더 나은 이해를 위한 형식:
그만큼 ISO 8601 지정자 형식 간격으로 쓸 수 있습니다. 5년 4개월 3일 2시간 1분 1초 :
P5Y4M3DT2H1M1S
그리고 대체 형태는 ISO 8601 다음과 같습니다.
P [ years-months-days ] [ T hours:minutes:seconds ]
그리고 그것은 또한 다음으로 시작됩니다. 문자 P와 문자 T, 이는 시간과 날짜 간격 값의 일부입니다.
예를 들어, ISO 8601 대체 형식 위해 쓸 수 있다 5년 4개월 3일 2시간 1분 1초, 아래 그림과 같이:
P0005-04-03T02:01:01
PostgreSQL 간격 출력 형식
간격 값의 PostgreSQL 간격 출력 형식은 다음의 도움으로 설정할 수 있습니다. 세트 간격 스타일 아래 예에서 볼 수 있듯이 명령을 실행합니다.
SET intervalstyle = 'iso_8601';
PostgreSQL에는 다음과 같은 네 가지 출력 형식이 포함되어 있습니다.
참고: 간격 값의 형식을 지정하기 위해 PostgreSQL은 기본적으로 Postgres 스타일을 사용합니다.
더 나은 이해의 예를 살펴 보겠습니다.
아래 명령은 다음을 표시하는 데 사용됩니다. 5년 4개월 3일 2시간 1분 1초 네 가지 출력 형식:
ISO_8601 출력 형식의 경우
아래 명령에서 우리는 세트 그만큼 간격 스타일 ~처럼 iso_8601 위에서 언급한 간격 값의 경우:
SET intervalstyle = 'iso_8601'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minute 1 second';
산출
위의 명령을 실행하면 다음과 같은 결과를 얻게 됩니다. iso_8601 간격 출력 형식:
postgres_verbose 출력 형식의 경우
아래 명령에서 우리는 세트 그만큼 간격 스타일 ~처럼 postgres_verbose 위에서 언급한 간격 값의 경우:
SET intervalstyle = 'postgres_verbose'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
산출
위의 명령을 구현하면 다음과 같은 결과를 얻을 수 있습니다. postgres_verbose 간격 출력 형식:
Java에서 문자열을 int로 캐스팅하는 방법
Postgres 출력 형식의 경우
아래 명령에서 우리는 세트 그만큼 간격 스타일 ~처럼 포스트그레스 위에서 언급한 간격 값의 경우:
SET intervalstyle = 'postgres'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
산출
위의 명령을 성공적으로 실행하면 아래 결과를 얻을 수 있습니다. 포스트그레스 간격 출력 형식:
Sql_standard 출력 형식의 경우
아래 명령에서 우리는 세트 그만큼 간격 스타일 ~처럼 sql_standard 위에서 언급한 간격 값의 경우:
SET intervalstyle = 'sql_standard'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
산출
위의 명령을 성공적으로 실행하면 아래 결과를 얻을 수 있습니다. sql_standard 간격 출력 형식:
PostgreSQL 간격을 문자열로 수정
우리는 TO_CHAR() 간격 값을 문자열로 수정하는 함수입니다.
PostgreSQL 간격을 문자열로 수정하는 구문
TO_CHAR(interval,format)
그만큼 TO_CHAR() 함수 걸립니다 첫 번째 진술 ~처럼 간격 값 그리고 또 하나는 체재 문자열을 검색하여 특정 형식으로 간격을 표시합니다.
아래 예에서는 PostgreSQL 간격을 문자열 값으로 변환하는 TO_CHAR() 함수를 사용합니다.
SELECT TO_CHAR( INTERVAL '15h 15m 15s','HH24:MI:SS' );
산출
위의 명령을 성공적으로 실행하면 다음과 같은 결과를 얻을 수 있습니다.
PostgreSQL 간격 관련 연산자 및 함수
간격 연산자
우리는 다음을 사용할 수 있습니다 +, -, * 등 산술 연산자 간격 값을 얻으려면.
더 나은 이해를 위해 아래 예를 살펴보겠습니다.
다음 명령에서는 산술 연산자(+) PostgreSQL 간격 데이터 유형의 도움으로:
SELECT INTERVAL '1h 50m' + INTERVAL '5m';
산출
위의 명령을 구현하면 아래와 같이 결과가 나타납니다.
자바 시도 잡기
다음 명령에서는 산술 연산자(-) PostgreSQL 간격 데이터 유형의 도움으로:
SELECT INTERVAL '3h 50m' - INTERVAL '30m';
산출
위의 명령을 구현하면 다음과 같은 결과를 얻게 됩니다.
다음 명령에서는 산술 연산자(*) PostgreSQL 간격 데이터 유형의 도움으로:
SELECT 400 * INTERVAL '5 minute';
산출
위의 명령을 구현하면 다음과 같은 결과를 얻게 됩니다.
PostgreSQL 간격에서 데이터 추출
우리는 발췌() 간격 값에서 필드를 추출하는 함수입니다. 예를 들어, 년, 월, 날짜 등 .
PostgreSQL 간격에서 데이터를 추출하기 위한 구문
EXTRACT(field FROM interval)
위 구문에서 다음을 사용할 수 있습니다. 년, 월, 날짜, 시, 분 , 등을 필드 매개변수에 입력합니다.
그만큼 발췌 간격에서 추출하려는 경우 함수는 배정밀도 유형의 값을 반환합니다.
다음 예에서는 발췌() 배정밀도 값을 검색하는 함수입니다.
SELECT EXTRACT (MINUTE FROM INTERVAL '2 hours 30 minutes' );
산출
위 명령을 성공적으로 실행하면 아래 출력이 표시됩니다. 배정밀도에 대한 날짜 부분 값은 아래와 같습니다:
PostgreSQL 간격 값 조정
우리는 두 가지 기능을 가지고 있습니다. justify_days 및 justify_hours PostgreSQL에서는 24시간 간격 ~로 생각하다 어느 날 그리고 간격은 30일 ~로 생각하다 한달 .
PostgreSQL 간격 값을 조정하는 방법을 이해하기 위한 예를 살펴보겠습니다.
다음 명령에서는 justify_days 및 justify_hours 함수:
SELECT justify_days(INTERVAL '30 days'), justify_hours(INTERVAL '24 hours');
산출
위의 명령을 실행하면 다음과 같은 결과를 얻을 수 있으며, 이는 간격을 표시합니다. 30일을 한 달로 그리고 24시간 간격을 하루로 간주 :
그 외에도, justify_interval 함수는 다음의 도움으로 간격 값을 조절합니다. justify_days 및 justify_hours 추가된 기호 수정:
다음 예에서는 SELECT 명령과 함께 justifiy_interval 함수를 사용합니다.
SELECT justify_interval(interval '6 months -1 hour');
산출
위 명령을 구현하면 다음과 같은 결과가 출력됩니다.
개요
에서 PostgreSQL 간격 데이터 유형 섹션에서 우리는 다음 주제를 배웠습니다.
- 그만큼 PostgreSQL 간격 데이터 유형은 기간을 저장하고 배포하는 데 사용됩니다. 년, 월, 일, 시간, 분, 초.
- 우리는 다른 것을 사용했습니다 간격 함수 , 예를 들어, NOW(), TO_CHAR(), 특정 테이블의 간격 값을 향상시킵니다.
- PostgreSQL 간격 값에는 두 가지가 모두 있습니다. 입력과 출력 간격 형식.
- 다음의 도움으로 PostgreSQL 간격 값을 조정할 수 있습니다. justify_days(), justify_hours, justify_interval() 함수.
- 우리는 발췌() 간격 필드 값을 추출하는 함수입니다.