logo

PostgreSQL interval

V této části porozumíme fungování datový typ PostgreSQL Interval, a také vidíme příklady z Datový typ intervalu. A většinou se používá Interval funkcí , například, NOW(), TO_CHAR(), EXTRACT(), justify_days(), justify_hours(), justify_interval(). The Vstup a výstup formát pro hodnoty intervalů PostgreSQL.

Co je datový typ intervalu PostgreSQL?

V PostgreSQL je Interval je další typ datového typu používaného k ukládání a nasazení Time in roky, měsíce, dny, hodiny, minuty, sekundy, atd. A měsíce a dny hodnoty jsou celočíselné hodnoty , zatímco druhé pole může být hodnoty zlomků.

Hodnotu datového typu intervalu PostgreSQL zahrnuje 16 bajtů úložiště velikost, která pomáhá uložit období v přijatelném rozsahu od - 178000000 let až 178000000 let let.

mikrolitické jádro

Poznámka: Počet desetinných míst ve druhém poli je znám jako přesnost p.

Syntaxe datového typu PostgreSQL Interval

Syntaxe datového typu PostgreSQL Interval je následující:

 @ interval [ fields ] [ (p) ] 

Ve výše uvedené syntaxi máme následující parametry:

Parametr Popis
pole Parametr pole se používá k zobrazení času.
p P se používá k zobrazení hodnoty přesnosti.
@ Parametr @ můžeme ignorovat, protože jde o volitelný parametr.

Podívejme se na ukázkový příklad pro lepší pochopení toho, jak můžeme zapsat hodnoty Intervalu s @ parametr a bez @ parametru :

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

NEBO

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

Poznámka: Obě výše uvedená tvrzení můžeme použít tak, jak si navzájem odpovídají. Dále může mít hodnota intervalu volitelnou hodnotu přesnosti p s povoleným rozsahem začínajícím od 0 do 6.

Příklad datového typu PostgreSQL Interval

Podívejme se na jeden vzorový příklad, abychom pochopili, jak Datový typ PostgreSQL Interval funguje.

V níže uvedeném příkladu se pokusíme najít čas 2 hodiny 30 minut předtím, na aktuální čas loňského roku ; použijeme následující příkazy:

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

Výstup

Po provedení výše uvedeného příkazu získáme níže uvedený výstup, který se zobrazí 2 hodiny 30 minut před loňským rokem :

PostgreSQL interval

Viděli jsme primární příklad intervalového datového typu a pochopili jsme jeho fungování. Nyní uvidíme vstupní a výstupní formát intervalové hodnoty.

Za prvé, pochopíme Hodnota intervalu PostgreSQL pro vstupní formát :

Intervalový vstupní formát PostgreSQL

V PostgreSQL máme následující podrobná syntaxe, což nám pomáhá zapsat intervalové hodnoty:

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

Máme níže uvedené parametry, které se používají ve výše uvedené syntaxi:

Parametr Popis
Množství A Množství je číslo, které také přijímá znaky jako + nebo -
jednotka The jednotka může být jakýkoliv tisíciletí, století, dekáda, rok, měsíc, týden, den, hodina, minuta, sekunda, milisekunda, mikrosekunda, nebo zkratka může být následující y, m, d atd. a množné číslo může být měsíce, dny , atd.
směr The směr parametr může být před nebo prázdný řetězec.

Poznámka: Výše ​​uvedená syntaxe se také používá pro intervalový výstupní formát a je známá jako postgres_verbose.

V níže uvedeném příkladu zobrazíme některé intervalové hodnoty, kde použijeme podrobná syntaxe :

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

Formát intervalu ISO 8601

Kromě podrobné syntaxe výše, k zápisu intervalových hodnot pomocí ISO 8601-krát intervalech, PostgreSQL nám poskytuje dva způsoby, které jsou následující:

    Formát označení Alternativní formát

Formát označení pro ISO 8601 je následující:

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

Ve výše uvedeném formátu začíná podstatná hodnota intervalu znakem písmeno P a písmeno T se používá k definování jednotka denní doby .

Níže uvedená tabulka zobrazuje interval ISO 8601 zkratky jednotek:

Zkratka Popis
A let
M Měsíce (pro datovou část)
V týdny
D Dny
H hodiny
M Minuty (pro časovou část)
S Sekundy

Poznámka: M může být měsíce nebo minuty podle toho, zda vypadá před nebo za písmenem T.

Podívejme se na příklad Označení ISO 8601 formát pro naše lepší pochopení:

The Formát označení ISO 8601 lze zapsat pro interval 5 let 4 měsíce 3 dny 2 hodiny 1 minuty 1 sekunda :

 P5Y4M3DT2H1M1S 

A alternativní forma ISO 8601 je znázorněno níže:

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

A také to začíná tím písmeno P a písmeno T, která rozděluje čas a datum části hodnoty intervalu.

Například, Alternativní forma ISO 8601 lze napsat za 5 let 4 měsíce 3 dny 2 hodiny 1 minuta 1 sekunda, Jak je ukázáno níže:

 P0005-04-03T02:01:01 

Výstupní formát intervalu PostgreSQL

Intervalový výstupní formát intervalových hodnot PostgreSQL lze nastavit pomocí SOUBOR intervalový styl příkaz, jak můžeme vidět na níže uvedeném příkladu:

 SET intervalstyle = 'iso_8601'; 

PostgreSQL obsahuje čtyři různé výstupní formáty, jako například:

    iso_8601 postgres_verbose Postgres sql standard

Poznámka: Pro formátování hodnot intervalů používá PostgreSQL ve výchozím nastavení styl Postgres.

Podívejme se na příklad našeho lepšího porozumění:

Níže uvedený příkaz se používá k zobrazení 5 let 4 měsíce 3 dny 2 hodiny 1 minuta 1 sekunda ve čtyřech různých výstupních formátech:

Pro výstupní formát ISO_8601

V níže uvedeném příkazu to uděláme SOUBOR a intervalový styl tak jako iso_8601 pro výše uvedenou hodnotu intervalu:

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

Výstup

Po provedení výše uvedeného příkazu získáme níže uvedený výsledek, který představuje iso_8601 intervalový výstupní formát:

PostgreSQL interval

Pro výstupní formát postgres_verbose

V níže uvedeném příkazu to uděláme SOUBOR a intervalový styl tak jako postgres_verbose pro výše uvedenou hodnotu intervalu:

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

Výstup

Níže uvedený výsledek získáme po implementaci výše uvedeného příkazu, který ukazuje postgres_verbose intervalový výstupní formát:

nepřátelské hledání
PostgreSQL interval

Pro výstupní formát Postgres

V níže uvedeném příkazu to uděláme SOUBOR a intervalový styl tak jako Postgres pro výše uvedenou hodnotu intervalu:

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

Výstup

Níže uvedený výsledek získáme po úspěšném provedení výše uvedeného příkazu, který ukazuje Postgres intervalový výstupní formát:

PostgreSQL interval

Pro výstupní formát Sql_standard

V níže uvedeném příkazu to uděláme SOUBOR a intervalový styl tak jako sql_standard pro výše uvedenou hodnotu intervalu:

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

Výstup

Níže uvedený výsledek získáme po úspěšném provedení výše uvedeného příkazu, který představuje sql_standard intervalový výstupní formát:

PostgreSQL interval

Úprava intervalu PostgreSQL na řetězec

Můžeme použít TO_CHAR() funkce pro úpravu hodnoty intervalu na řetězec.

Syntaxe pro úpravu intervalu PostgreSQL na řetězec

 TO_CHAR(interval,format) 

The Funkce TO_CHAR(). bere první prohlášení tak jako intervalovou hodnotu a další jako formát a načte řetězec zobrazující interval v konkrétním formátu.

V níže uvedeném příkladu použijeme funkci TO_CHAR(), která převede interval PostgreSQL na hodnotu řetězce:

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

Výstup

Po úspěšném provedení výše uvedeného příkazu získáme níže uvedený výsledek:

PostgreSQL interval

Operátory a funkce související s intervalem PostgreSQL

Intervalové operátory

Můžeme použít následující +, -, * atd. aritmetický operátor abyste získali intervalové hodnoty.

Pro lepší pochopení se podívejme na níže uvedený příklad:

V následujícím příkazu použijeme aritmetický operátor (+) s pomocí datového typu intervalu PostgreSQL:

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

Výstup

volání funkce js z html

Při implementaci výše uvedeného příkazu získáme níže uvedený výsledek, jak je znázorněno níže:

PostgreSQL interval

V následujícím příkazu použijeme aritmetický operátor (-) s pomocí datového typu intervalu PostgreSQL:

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

Výstup

Po implementaci výše uvedeného příkazu získáme níže uvedený výsledek:

PostgreSQL interval

V následujícím příkazu použijeme aritmetický operátor (*) s pomocí datového typu intervalu PostgreSQL:

 SELECT 400 * INTERVAL '5 minute'; 

Výstup

Po implementaci výše uvedeného příkazu získáme níže uvedený výsledek:

PostgreSQL interval

Extrahování dat z intervalu PostgreSQL

Můžeme použít VÝPIS() funkce pro extrahování polí z hodnoty intervalu, např. rok, měsíc, datum atd .

Syntaxe pro extrahování dat z intervalu PostgreSQL

 EXTRACT(field FROM interval) 

Ve výše uvedené syntaxi můžeme použít rok, měsíc, datum, hodina, minuty , atd., v parametru pole.

The výpis funkce vrací hodnotu typu double-precision, pokud chceme extrahovat z intervalu.

V následujícím příkladu použijeme VÝPIS() funkce pro načtení hodnoty s dvojnásobnou přesností.

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

Výstup

Po úspěšném provedení výše uvedeného příkazu získáme níže uvedený výstup, který zobrazí datová část pro dvojnásobnou přesnost hodnoty, jak je uvedeno níže:

PostgreSQL interval

Úprava hodnot intervalu PostgreSQL

Máme dvě funkce, justify_days a justify_hours v PostgreSQL, což nám umožňuje upravit interval 24 hodin považovat za jednoho dne a interval 30denní považovat za jeden měsíc .

Podívejme se na příklad, abychom pochopili, jak upravujeme hodnoty intervalu PostgreSQL:

V následujícím příkazu použijeme funkce justify_days a justify_hours:

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

Výstup

Po provedení výše uvedeného příkazu získáme následující výsledek, který zobrazuje interval of 30 dní jako jeden měsíc a interval 24 hodin jako jeden den :

PostgreSQL interval

Kromě toho, justify_interval funkce reguluje intervalové hodnoty pomocí justify_days a justify_hours s přidanými úpravami znamení:

V následujícím příkladu použijeme funkci justifiy_interval s příkazem SELECT:

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

Výstup

Po implementaci výše uvedeného příkazu získáme následující výstup:

PostgreSQL interval

Přehled

V Datový typ PostgreSQL Interval části jsme se naučili tato témata:

  • The PostgreSQL intervalová data typ se používá k uložení a nasazení období roky, měsíce, dny, hodiny, minuty, sekundy.
  • Používali jsme různé Intervalové funkce , například, NOW(), TO_CHAR(), pro zvýšení intervalových hodnot z konkrétní tabulky.
  • Hodnoty intervalu PostgreSQL mají obojí vstup a výstup intervalový formát.
  • Hodnoty intervalu PostgreSQL můžeme upravit pomocí funkce justify_days(), justify_hours, justify_interval().
  • Můžeme použít VÝPIS() funkce pro extrakci hodnot intervalového pole.