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 :
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í 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:
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:
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í
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:
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:
Ú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:
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:
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:
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:
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:
Ú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 :
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:
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.