logo

PostgreSQL 간격

이 섹션에서는 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 간격 입력 형식

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에는 다음과 같은 네 가지 출력 형식이 포함되어 있습니다.

    iso_8601 postgres_verbose 포스트그레스 SQL 표준

참고: 간격 값의 형식을 지정하기 위해 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 간격 출력 형식:

PostgreSQL 간격

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로 캐스팅하는 방법
PostgreSQL 간격

Postgres 출력 형식의 경우

아래 명령에서 우리는 세트 그만큼 간격 스타일 ~처럼 포스트그레스 위에서 언급한 간격 값의 경우:

 SET intervalstyle = 'postgres'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second'; 

산출

위의 명령을 성공적으로 실행하면 아래 결과를 얻을 수 있습니다. 포스트그레스 간격 출력 형식:

PostgreSQL 간격

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 간격

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 간격 관련 연산자 및 함수

간격 연산자

우리는 다음을 사용할 수 있습니다 +, -, * 등 산술 연산자 간격 값을 얻으려면.

더 나은 이해를 위해 아래 예를 살펴보겠습니다.

다음 명령에서는 산술 연산자(+) PostgreSQL 간격 데이터 유형의 도움으로:

 SELECT INTERVAL '1h 50m' + INTERVAL '5m'; 

산출

위의 명령을 구현하면 아래와 같이 결과가 나타납니다.

자바 시도 잡기
PostgreSQL 간격

다음 명령에서는 산술 연산자(-) PostgreSQL 간격 데이터 유형의 도움으로:

 SELECT INTERVAL '3h 50m' - INTERVAL '30m'; 

산출

위의 명령을 구현하면 다음과 같은 결과를 얻게 됩니다.

PostgreSQL 간격

다음 명령에서는 산술 연산자(*) PostgreSQL 간격 데이터 유형의 도움으로:

 SELECT 400 * INTERVAL '5 minute'; 

산출

위의 명령을 구현하면 다음과 같은 결과를 얻게 됩니다.

PostgreSQL 간격

PostgreSQL 간격에서 데이터 추출

우리는 발췌() 간격 값에서 필드를 추출하는 함수입니다. 예를 들어, 년, 월, 날짜 등 .

PostgreSQL 간격에서 데이터를 추출하기 위한 구문

 EXTRACT(field FROM interval) 

위 구문에서 다음을 사용할 수 있습니다. 년, 월, 날짜, 시, 분 , 등을 필드 매개변수에 입력합니다.

그만큼 발췌 간격에서 추출하려는 경우 함수는 배정밀도 유형의 값을 반환합니다.

다음 예에서는 발췌() 배정밀도 값을 검색하는 함수입니다.

 SELECT EXTRACT (MINUTE FROM INTERVAL '2 hours 30 minutes' ); 

산출

위 명령을 성공적으로 실행하면 아래 출력이 표시됩니다. 배정밀도에 대한 날짜 부분 값은 아래와 같습니다:

PostgreSQL 간격

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시간 간격을 하루로 간주 :

PostgreSQL 간격

그 외에도, justify_interval 함수는 다음의 도움으로 간격 값을 조절합니다. justify_days 및 justify_hours 추가된 기호 수정:

다음 예에서는 SELECT 명령과 함께 justifiy_interval 함수를 사용합니다.

 SELECT justify_interval(interval '6 months -1 hour'); 

산출

위 명령을 구현하면 다음과 같은 결과가 출력됩니다.

PostgreSQL 간격

개요

에서 PostgreSQL 간격 데이터 유형 섹션에서 우리는 다음 주제를 배웠습니다.

  • 그만큼 PostgreSQL 간격 데이터 유형은 기간을 저장하고 배포하는 데 사용됩니다. 년, 월, 일, 시간, 분, 초.
  • 우리는 다른 것을 사용했습니다 간격 함수 , 예를 들어, NOW(), TO_CHAR(), 특정 테이블의 간격 값을 향상시킵니다.
  • PostgreSQL 간격 값에는 두 가지가 모두 있습니다. 입력과 출력 간격 형식.
  • 다음의 도움으로 PostgreSQL 간격 값을 조정할 수 있습니다. justify_days(), justify_hours, justify_interval() 함수.
  • 우리는 발췌() 간격 필드 값을 추출하는 함수입니다.