logo

Interwał PostgreSQL

W tej części omówimy działanie narzędzia typ danych PostgreSQL Interval, i też widzimy przykłady z Typ danych interwałowy. I najczęściej używany Interwał Funkcje , Na przykład, TERAZ(), TO_CHAR(), EXTRACT(), justify_days(), justify_hours(), justify_interval(). The Wejście i wyjście format wartości interwałów PostgreSQL.

Co to jest typ danych interwału PostgreSQL?

W PostgreSQL, Interwał to inny typ danych używany do przechowywania i wdrażania czasu w lata, miesiące, dni, godziny, minuty, sekundy, itp. I miesiące i dni wartości są wartości całkowite , natomiast pole drugie może być wartości ułamków.

Wartość typu danych interwału PostgreSQL obejmuje Pamięć 16 bajtów rozmiar, który pomaga przechowywać kropkę w dopuszczalnym zakresie od - 178000000 lat do 178000000 lata.

psy półkowe

Uwaga: Liczba cyfr ułamkowych wziętych w drugim polu nazywana jest precyzją p.

Składnia typu danych PostgreSQL Interval

Składnia typu danych PostgreSQL Interval jest następująca:

 @ interval [ fields ] [ (p) ] 

W powyższej składni mamy następujące parametry:

Parametr Opis
pola Parametr pola służy do wyświetlania czasu.
P P służy do wyświetlania wartości dokładności.
@ Możemy zignorować parametr @, ponieważ jest to parametr opcjonalny.

Zobaczmy przykładowy przykład, aby lepiej zrozumieć, w jaki sposób możemy zapisać wartości interwału z Parametr @ i bez parametru @ :

 @interval '6 months before'; @interval '2 hours 30 minutes'; 

LUB

 interval '6 months before'; interval '2 hours 30 minutes'; 

Uwaga: możemy używać obu powyższych stwierdzeń, ponieważ odpowiadają sobie nawzajem. Co więcej, wartość przedziału może mieć wybraną wartość precyzji p, przy czym dozwolony zakres zaczyna się od 0 do 6.

Przykład typu danych PostgreSQL Interval

Zobaczmy jeden przykładowy przykład, aby zrozumieć, jak Typ danych PostgreSQL Interwał Pracuje.

W poniższym przykładzie spróbujemy znaleźć czas 2 godziny 30 minut wcześniej, na aktualny czas ubiegłego roku ; użyjemy następujących poleceń:

 SELECT now(), now() - INTERVAL '6 months 2 hours 30 minutes' AS '2 hours 30 minutes before last year'; 

Wyjście

Po wykonaniu powyższego polecenia otrzymamy poniższe dane wyjściowe, które zostaną wyświetlone 2 godziny 30 minut wcześniej niż w zeszłym roku :

Interwał PostgreSQL

Widzieliśmy podstawowy przykład typu danych interwałowych i rozumiemy jego działanie. Teraz zobaczymy format wejściowy i wyjściowy wartości interwału.

Po pierwsze, zrozumiemy Wartość interwału PostgreSQL dla formatu wejściowego :

Format wejściowy interwału PostgreSQL

W PostgreSQL mamy następujące informacje pełna składnia, co pomaga nam zapisać wartości przedziałów:

 quantity unit [quantity unit...] [direction] 

Mamy poniższe parametry, które są używane w powyższej składni:

Parametr Opis
ilość A ilość jest liczbą, która akceptuje również znaki typu + Lub -
jednostka The jednostka może być dowolny tysiąclecie, stulecie, dekada, rok, miesiąc, tydzień, dzień, godzina, minuta, sekunda, milisekunda, mikrosekunda, lub skrót może być następujący y, m, d itd. a liczba mnoga może być miesiące, dni itp.
kierunek The kierunek parametr może być temu lub pusty ciąg.

Uwaga: Powyższa składnia jest również używana w formacie wyjściowym interwału i jest znana jako postgres_verbose.

W poniższym przykładzie wyświetlimy niektóre wartości interwałów, w których używamy pełna składnia :

 INTERVAL '1 year 5 months 5 days'; INTERVAL '1 weeks ago'; 

Format interwału ISO 8601

Oprócz powyższej szczegółowej składni, aby zapisać wartości interwałów za pomocą Czas ISO 8601 interwałach, PostgreSQL udostępnia nam dwa sposoby, które są następujące:

    Format desygnatorów Alternatywny format

Format oznaczeń dla ISO 8601 jest następujący:

 P quantity unit [ quantity unit ...] [ T [ quantity unit ...]] 

W powyższym formacie istotna wartość interwału zaczyna się od litera P , oraz litera T służy do określenia jednostka pory dnia .

Poniższa tabela przedstawia Interwał ISO 8601 skróty jednostek:

Skrót Opis
I Lata
M Miesiące (dla części daty)
W Tygodnie
D Dni
H godziny
M Minuty (dla części czasu)
S sekundy

Uwaga: litera M może oznaczać miesiące lub minuty, w zależności od tego, czy znajduje się przed, czy po literze T.

Zobaczmy przykład Oznaczenia ISO 8601 format dla naszego lepszego zrozumienia:

The Format oznaczeń ISO 8601 można zapisać dla przedziału 5 lat 4 miesiące 3 dni 2 godziny 1 minuta 1 sekunda :

 P5Y4M3DT2H1M1S 

I alternatywna forma ISO8601 jest jak pokazano poniżej:

 P [ years-months-days ] [ T hours:minutes:seconds ] 

I zaczyna się również od litera P i litera T, który dzieli czas i data części wartości interwału.

Na przykład Alternatywna forma ISO 8601 można pisać 5 lat 4 miesiące 3 dni 2 godziny 1 minuta 1 sekunda, jak pokazano niżej:

 P0005-04-03T02:01:01 

Format wyjściowy interwału PostgreSQL

Format wyjściowy wartości interwałów PostgreSQL można ustawić za pomocą USTAWIĆ styl interwałowy polecenie, jak widać w poniższym przykładzie:

 SET intervalstyle = 'iso_8601'; 

PostgreSQL zawiera cztery różne formaty wyjściowe, takie jak:

    iso_8601 postgres_verbose Postgres standard SQL

Uwaga: Aby sformatować wartości interwałów, PostgreSQL domyślnie używa stylu Postgres.

Zobaczmy przykład naszego lepszego zrozumienia:

Poniższe polecenie służy do wyświetlania 5 lat 4 miesiące 3 dni 2 godziny 1 minuta 1 sekunda w czterech różnych formatach wyjściowych:

Dla formatu wyjściowego ISO_8601

W poniższym poleceniu to zrobimy USTAWIĆ the styl interwałowy Jak iso_8601 dla powyższej wartości przedziału:

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

Wyjście

Po wykonaniu powyższego polecenia otrzymamy poniższy wynik, który reprezentuje iso_8601 format wyjściowy interwału:

Interwał PostgreSQL

Dla formatu wyjściowego postgres_verbose

W poniższym poleceniu to zrobimy USTAWIĆ the styl interwałowy Jak postgres_verbose dla powyższej wartości przedziału:

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

Wyjście

Poniższy wynik otrzymamy po wykonaniu powyższego polecenia, które pokazuje postgres_verbose format wyjściowy interwału:

programowanie liczb pierwszych w Javie
Interwał PostgreSQL

Dla formatu wyjściowego Postgres

W poniższym poleceniu to zrobimy USTAWIĆ the styl interwałowy Jak Postgres dla powyższej wartości przedziału:

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

Wyjście

Poniższy wynik otrzymamy po pomyślnym wykonaniu powyższego polecenia, które pokazuje Postgres format wyjściowy interwału:

Interwał PostgreSQL

Dla formatu wyjściowego Sql_standard

W poniższym poleceniu to zrobimy USTAWIĆ the styl interwałowy Jak standard_sql dla powyższej wartości przedziału:

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

Wyjście

Poniższy wynik otrzymamy po pomyślnym wykonaniu powyższego polecenia, które reprezentuje standard_sql format wyjściowy interwału:

Interwał PostgreSQL

Modyfikowanie interwału PostgreSQL na ciąg

Możemy skorzystać z TO_ZNAK() funkcja służąca do modyfikowania wartości interwału na ciąg znaków.

Składnia modyfikowania interwału PostgreSQL na ciąg

 TO_CHAR(interval,format) 

The Funkcja TO_CHAR(). bierze pierwsze stwierdzenie Jak wartość interwału i jeszcze jeden jako format i pobiera ciąg znaków, wyświetlając interwał w określonym formacie.

W poniższym przykładzie użyjemy funkcji TO_CHAR(), która konwertuje interwał PostgreSQL na wartość ciągu znaków:

 SELECT TO_CHAR( INTERVAL '15h 15m 15s','HH24:MI:SS' ); 

Wyjście

Po pomyślnym wykonaniu powyższego polecenia otrzymamy następujący wynik:

Interwał PostgreSQL

Operatory i funkcje powiązane z interwałem PostgreSQL

Operatory interwałowe

Możemy skorzystać z poniższych +, -, * itd. operator arytmetyczny aby uzyskać wartości interwału.

Dla lepszego zrozumienia spójrzmy na poniższy przykład:

W poniższym poleceniu użyjemy metody operator arytmetyczny (+) za pomocą typu danych interwałowych PostgreSQL:

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

Wyjście

Poniższy wynik otrzymamy po wykonaniu powyższego polecenia, jak pokazano poniżej:

Interwał PostgreSQL

W poniższym poleceniu użyjemy metody operator arytmetyczny (-) za pomocą typu danych interwałowych PostgreSQL:

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

Wyjście

Po wykonaniu powyższego polecenia otrzymamy następujący wynik:

Interwał PostgreSQL

W poniższym poleceniu użyjemy metody operator arytmetyczny (*) za pomocą typu danych interwałowych PostgreSQL:

 SELECT 400 * INTERVAL '5 minute'; 

Wyjście

Po wykonaniu powyższego polecenia otrzymamy następujący wynik:

Interwał PostgreSQL

Wyodrębnianie danych z interwału PostgreSQL

Możemy skorzystać z WYCIĄG() funkcja wyodrębniająca pola z wartości przedziału, na przykład rok, miesiąc, dzień itp .

Składnia wyodrębniania danych z interwału PostgreSQL

 EXTRACT(field FROM interval) 

W powyższej składni możemy użyć rok, miesiąc, dzień, godzina, minuty itp. w parametrze pola.

The wyciąg funkcja zwraca wartość typu podwójnej precyzji, jeśli chcemy wyodrębnić z przedziału.

W poniższym przykładzie użyjemy metody WYCIĄG() funkcja pobierająca wartość o podwójnej precyzji.

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

Wyjście

Po pomyślnym wykonaniu powyższego polecenia otrzymamy poniższe dane wyjściowe, które wyświetlają część daty dla podwójnej precyzji wartości jak pokazano poniżej:

Interwał PostgreSQL

Dostosowywanie wartości interwałów PostgreSQL

Mamy dwie funkcje, justify_days i justify_hours w PostgreSQL, co pozwala nam modyfikować plik odstępie 24-godzinnym uznać za pewnego dnia i odstęp 30 dni uznać za jeden miesiąc .

Zobaczmy przykład, aby zrozumieć, w jaki sposób dostosowujemy wartości interwałów PostgreSQL:

przekonwertuj ciąg na obiekt json

W poniższym poleceniu użyjemy metody funkcja justify_days i justify_hours:

 SELECT justify_days(INTERVAL '30 days'), justify_hours(INTERVAL '24 hours'); 

Wyjście

Po wykonaniu powyższego polecenia otrzymamy następujący wynik, który wyświetla interwał 30-dniowy jak jeden miesiąc i przedział 24-godzinny jako jeden dzień :

Interwał PostgreSQL

Poza tym, uzasadnij_interwał Funkcja reguluje wartości interwałów za pomocą justify_days i justify_hours z dodanymi modyfikacjami znaku:

W poniższym przykładzie użyjemy funkcji justifiy_interval z poleceniem SELECT:

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

Wyjście

Po wykonaniu powyższego polecenia otrzymamy następujące dane wyjściowe:

Interwał PostgreSQL

Przegląd

w Typ danych PostgreSQL Interwał sekcji poznaliśmy następujące tematy:

  • The Dane interwałowe PostgreSQL typ służy do przechowywania i wdrażania kropki w lata, miesiące, dni, godziny, minuty, sekundy.
  • Używaliśmy różnych Funkcje interwałowe , Na przykład, TERAZ(), TO_ZNAK(), w celu zwiększenia wartości przedziałów z określonej tabeli.
  • Wartości interwałów PostgreSQL mają oba wejście i wyjście formacie interwałowym.
  • Możemy dostosować wartości interwałów PostgreSQL za pomocą funkcje justify_days(), justify_hours, justify_interval().
  • Możemy skorzystać z WYCIĄG() funkcja wyodrębniająca wartości pól przedziału.