V tejto časti porozumieme fungovaniu Typ údajov Interval PostgreSQL, a tiež vidíme príklady z Typ údajov intervalu. A väčšinou sa používa Interval funkcie , napríklad, NOW(), TO_CHAR(), EXTRACT(), justify_days(), justify_hours(), justify_interval(). The Vstup a výstup formát pre hodnoty intervalov PostgreSQL.
Čo je typ údajov intervalu PostgreSQL?
V PostgreSQL je Interval je ďalší typ dátového typu, ktorý sa používa na ukladanie a nasadenie Time in roky, mesiace, dni, hodiny, minúty, sekundy, atď. A mesiacov a dní hodnoty sú celočíselné hodnoty , keďže druhé pole môže byť hodnoty zlomkov.
Hodnota typu údajov intervalu PostgreSQL zahŕňa Úložný priestor 16 bajtov veľkosť, ktorá pomáha uložiť obdobie s prijateľným rozsahom od - 178000000 rokov až 178000000 rokov rokov.
mikrolitické jadro
Poznámka: Počet zlomkových číslic v druhom poli je známy ako presnosť p.
Syntax dátového typu PostgreSQL Interval
Syntax dátového typu PostgreSQL Interval je nasledovná:
@ interval [ fields ] [ (p) ]
Vo vyššie uvedenej syntaxi máme nasledujúce parametre:
Parameter | Popis |
---|---|
poliach | Parameter poľa sa používa na zobrazenie času. |
p | P sa používa na zobrazenie hodnoty presnosti. |
@ | Parameter @ môžeme ignorovať, keďže ide o voliteľný parameter. |
Pozrime sa na vzorový príklad, aby sme lepšie pochopili, ako môžeme zapísať hodnoty intervalu s @ parameter a bez @ parametra :
@interval '6 months before'; @interval '2 hours 30 minutes';
ALEBO
interval '6 months before'; interval '2 hours 30 minutes';
Poznámka: Obidva vyššie uvedené výroky môžeme použiť tak, ako si navzájom zodpovedajú. Okrem toho môže mať hodnota intervalu voliteľnú hodnotu presnosti p s povoleným rozsahom začínajúcim od 0 do 6.
Príklad dátového typu PostgreSQL Interval
Pozrime sa na jeden vzorový príklad, aby sme pochopili, ako Typ údajov Interval PostgreSQL Tvorba.
V nižšie uvedenom príklade sa pokúsime nájsť čas 2 hodiny 30 minút predtým, na aktuálny čas minulého roka ; použijeme nasledujúce príkazy:
SELECT now(), now() - INTERVAL '6 months 2 hours 30 minutes' AS '2 hours 30 minutes before last year';
Výkon
Po vykonaní vyššie uvedeného príkazu dostaneme nižšie uvedený výstup, ktorý sa zobrazí 2 hodiny 30 minút pred minulým rokom :
Videli sme primárny príklad intervalového dátového typu a pochopili sme jeho fungovanie. Teraz uvidíme vstupný a výstupný formát intervalové hodnoty.
Po prvé, pochopíme Hodnota intervalu PostgreSQL pre vstupný formát :
Intervalový vstupný formát PostgreSQL
V PostgreSQL máme nasledovné podrobná syntax, čo nám pomáha zapísať intervalové hodnoty:
quantity unit [quantity unit...] [direction]
Máme nižšie uvedené parametre, ktoré sa používajú vo vyššie uvedenej syntaxi:
Parameter | Popis |
---|---|
množstvo | A množstvo je číslo, ktoré akceptuje aj znaky ako + alebo - |
jednotka | The jednotka môže byť akýkoľvek tisícročie, storočie, desaťročie, rok, mesiac, týždeň, deň, hodina, minúta, sekunda, milisekunda, mikrosekunda, alebo skratka môže byť nasledujúca y, m, d atď. a množné číslo môže byť mesiace, dni , atď. |
smer | The smer parameter môže byť pred alebo prázdny reťazec. |
Poznámka: Vyššie uvedená syntax sa používa aj pre intervalový výstupný formát a je známa ako postgres_verbose.
V nižšie uvedenom príklade zobrazíme niektoré intervalové hodnoty, kde použijeme podrobná syntax :
INTERVAL '1 year 5 months 5 days'; INTERVAL '1 weeks ago';
Intervalový formát ISO 8601
Okrem podrobnej syntaxe uvedenej vyššie na písanie hodnôt intervalov pomocou ISO 8601-krát intervaloch, PostgreSQL nám poskytuje dva spôsoby, ktoré sú nasledovné:
Formát označenia pre ISO 8601 je nasledujúci:
P quantity unit [ quantity unit ...] [ T [ quantity unit ...]]
Vo vyššie uvedenom formáte sa podstatná hodnota intervalu začína na písmeno P , a písmeno T sa používa na definovanie jednotka času dňa .
Nižšie uvedená tabuľka zobrazuje interval ISO 8601 skratky jednotiek:
Skratka | Popis |
---|---|
A | rokov |
M | Mesiace (pre dátumovú časť) |
IN | týždňov |
D | Dni |
H | Hodiny |
M | Minúty (pre časovú časť) |
S | sekúnd |
Poznámka: M môže byť mesiace alebo minúty podľa toho, či vyzerá pred alebo za písmenom T.
Pozrime sa na príklad Označenia ISO 8601 formát pre naše lepšie pochopenie:
The Formát označenia ISO 8601 možno zapísať pre interval 5 rokov 4 mesiace 3 dni 2 hodiny 1 minúty 1 sekundu :
P5Y4M3DT2H1M1S
A alternatívna forma ISO 8601 je ako je uvedené nižšie:
P [ years-months-days ] [ T hours:minutes:seconds ]
A tiež to začína tým písmeno P a písmeno T, ktorý rozdeľuje čas a dátum časti hodnoty intervalu.
Napríklad, Alternatívna forma ISO 8601 môže byť napísané pre 5 rokov 4 mesiace 3 dni 2 hodiny 1 minúta 1 sekunda, ako je ukázané nižšie:
P0005-04-03T02:01:01
Výstupný formát intervalu PostgreSQL
Intervalový výstupný formát intervalových hodnôt PostgreSQL je možné nastaviť pomocou SET intervalstyle príkaz, ako môžeme vidieť v nasledujúcom príklade:
SET intervalstyle = 'iso_8601';
PostgreSQL obsahuje štyri rôzne výstupné formáty, ako napríklad:
Poznámka: Na formátovanie hodnôt intervalov PostgreSQL štandardne používa štýl Postgres.
Pozrime sa na príklad nášho lepšieho porozumenia:
Nasledujúci príkaz sa používa na zobrazenie 5 rokov 4 mesiace 3 dni 2 hodiny 1 minúta 1 sekunda v štyroch rôznych výstupných formátoch:
Pre výstupný formát ISO_8601
V nižšie uvedenom príkaze to urobíme SET na intervalstyle ako iso_8601 pre vyššie uvedenú hodnotu intervalu:
SET intervalstyle = 'iso_8601'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minute 1 second';
Výkon
Po vykonaní vyššie uvedeného príkazu dostaneme nižšie uvedený výsledok, ktorý predstavuje iso_8601 intervalový výstupný formát:
Pre výstupný formát postgres_verbose
V nižšie uvedenom príkaze to urobíme SET na intervalstyle ako postgres_verbose pre vyššie uvedenú hodnotu intervalu:
SET intervalstyle = 'postgres_verbose'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Výkon
Nižšie uvedený výsledok dostaneme po implementácii vyššie uvedeného príkazu, ktorý ukazuje postgres_verbose intervalový výstupný formát:
es5 vs es6
Pre výstupný formát Postgres
V nižšie uvedenom príkaze to urobíme SET na intervalstyle ako Postgres pre vyššie uvedenú hodnotu intervalu:
SET intervalstyle = 'postgres'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Výkon
Nižšie uvedený výsledok dostaneme po úspešnom vykonaní vyššie uvedeného príkazu, ktorý zobrazuje Postgres intervalový výstupný formát:
Pre výstupný formát Sql_standard
V nižšie uvedenom príkaze to urobíme SET na intervalstyle ako sql_standard pre vyššie uvedenú hodnotu intervalu:
SET intervalstyle = 'sql_standard'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Výkon
Nižšie uvedený výsledok dostaneme po úspešnom vykonaní vyššie uvedeného príkazu, ktorý predstavuje sql_standard intervalový výstupný formát:
Úprava intervalu PostgreSQL na reťazec
Môžeme použiť TO_CHAR() funkcia na úpravu hodnoty intervalu na reťazec.
Syntax na úpravu intervalu PostgreSQL na reťazec
TO_CHAR(interval,format)
The Funkcia TO_CHAR(). berie prvé vyhlásenie ako intervalová hodnota a ďalší ako formát a získa reťazec zobrazujúci interval v konkrétnom formáte.
V nižšie uvedenom príklade použijeme funkciu TO_CHAR(), ktorá konvertuje interval PostgreSQL na hodnotu reťazca:
SELECT TO_CHAR( INTERVAL '15h 15m 15s','HH24:MI:SS' );
Výkon
Po úspešnom vykonaní vyššie uvedeného príkazu dostaneme nasledujúci výsledok:
Operátory a funkcie súvisiace s intervalom PostgreSQL
Intervalové operátory
Môžeme použiť nasledovné +, -, * atď. aritmetický operátor aby ste získali intervalové hodnoty.
Pre lepšie pochopenie si pozrime nasledujúci príklad:
V nasledujúcom príkaze použijeme aritmetický operátor (+) pomocou dátového typu intervalu PostgreSQL:
SELECT INTERVAL '1h 50m' + INTERVAL '5m';
Výkon
Pri implementácii vyššie uvedeného príkazu získame výsledok uvedený nižšie:
V nasledujúcom príkaze použijeme aritmetický operátor (-) pomocou dátového typu intervalu PostgreSQL:
SELECT INTERVAL '3h 50m' - INTERVAL '30m';
Výkon
Po implementácii vyššie uvedeného príkazu získame nasledujúci výsledok:
V nasledujúcom príkaze použijeme aritmetický operátor (*) pomocou dátového typu intervalu PostgreSQL:
SELECT 400 * INTERVAL '5 minute';
Výkon
Po implementácii vyššie uvedeného príkazu získame nasledujúci výsledok:
Extrahovanie údajov z intervalu PostgreSQL
Môžeme použiť EXTRACT() funkcia na extrahovanie polí z hodnoty intervalu, napr. rok, mesiac, dátum atď .
Syntax pre extrakciu údajov z intervalu PostgreSQL
EXTRACT(field FROM interval)
Vo vyššie uvedenej syntaxi môžeme použiť rok, mesiac, dátum, hodina, minúty , atď., v parametri poľa.
The extrakt funkcia vracia hodnotu typu double-precision, ak chceme extrahovať z intervalu.
V nasledujúcom príklade použijeme EXTRACT() funkcia na získanie hodnoty s dvojnásobnou presnosťou.
SELECT EXTRACT (MINUTE FROM INTERVAL '2 hours 30 minutes' );
Výkon
Po úspešnom vykonaní vyššie uvedeného príkazu dostaneme nižšie uvedený výstup, ktorý zobrazuje dátumová časť pre dvojnásobnú presnosť hodnoty uvedené nižšie:
Úprava hodnôt intervalu PostgreSQL
Máme dve funkcie, justify_days a justify_hours v PostgreSQL, čo nám umožňuje upravovať interval 24 hodín považovať za jeden deň a interval 30-dňový považovať za jeden mesiac .
Pozrime sa na príklad, aby sme pochopili, ako upravujeme hodnoty intervalu PostgreSQL:
V nasledujúcom príkaze použijeme funkcie justify_days a justify_hours:
SELECT justify_days(INTERVAL '30 days'), justify_hours(INTERVAL '24 hours');
Výkon
Po vykonaní vyššie uvedeného príkazu dostaneme nasledujúci výsledok, ktorý zobrazuje interval 30 dní ako jeden mesiac a interval 24 hodín ako jeden deň :
Okrem toho, justify_interval funkcia reguluje intervalové hodnoty pomocou justify_days a justify_hours s pridanými úpravami znamienka:
V nasledujúcom príklade použijeme funkciu justifiy_interval s príkazom SELECT:
jsp javatpoint
SELECT justify_interval(interval '6 months -1 hour');
Výkon
Po implementácii vyššie uvedeného príkazu dostaneme nasledujúci výstup:
Prehľad
V Typ údajov Interval PostgreSQL časti sme sa naučili tieto témy:
- The Údaje o intervale PostgreSQL typ sa používa na uloženie a nasadenie obdobia v roky, mesiace, dni, hodiny, minúty, sekundy.
- Používali sme rôzne Intervalové funkcie , napríklad, TERAZ(), TO_CHAR(), na zvýšenie intervalových hodnôt z konkrétnej tabuľky.
- Hodnoty intervalu PostgreSQL majú oboje vstup a výstup intervalový formát.
- Hodnoty intervalu PostgreSQL môžeme upraviť pomocou funkcie justify_days(), justify_hours, justify_interval().
- Môžeme použiť EXTRACT() funkcia na extrahovanie hodnôt intervalového poľa.