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 :
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 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:
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:
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
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:
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:
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:
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:
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:
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:
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:
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ń :
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:
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.