logo

PostgreSQL interval

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 :

PostgreSQL interval

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 Alternatívny formát

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:

    iso_8601 postgres_verbose Postgres sql štandard

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:

PostgreSQL interval

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
PostgreSQL interval

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:

PostgreSQL interval

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:

PostgreSQL interval

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

PostgreSQL interval

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:

PostgreSQL interval

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:

PostgreSQL interval

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:

PostgreSQL interval

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:

PostgreSQL interval

Ú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ň :

PostgreSQL interval

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:

PostgreSQL interval

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.