logo

Interval PostgreSQL

U ovom odjeljku ćemo razumjeti rad Intervalni tip podataka PostgreSQL, a također vidimo primjeri od Intervalni tip podataka. I uglavnom koristi Interval funkcije , na primjer, NOW(), TO_CHAR(), EXTRACT(), justify_days(), justify_hours(), justify_interval(). The Ulaz i izlaz format za vrijednosti PostgreSQL intervala.

Što je PostgreSQL Interval Data Type?

U PostgreSQL-u, Interval je druga vrsta vrste podataka koja se koristi za pohranu i implementaciju vremena godine, mjeseci, dani, sati, minute, sekunde, itd. I mjeseci i dana vrijednosti su cjelobrojne vrijednosti , dok je drugo polje može biti vrijednosti razlomaka.

Vrijednost vrste podataka intervala PostgreSQL uključuje 16 bajtova memorije veličina, koja pomaže pohraniti razdoblje s prihvatljivim rasponom od - 178000000 godina do 178000000 godine.

čitanje iz csv datoteke u Javi

Napomena: Broj razlomaka uzetih u drugom polju poznat je kao preciznost p.

Sintaksa tipa podataka PostgreSQL Interval

Sintaksa vrste podataka PostgreSQL Interval je sljedeća:

 @ interval [ fields ] [ (p) ] 

U gornjoj sintaksi imamo sljedeće parametre:

Parametar Opis
polja Parametar polja koristi se za prikaz vremena.
str P se koristi za prikaz precizne vrijednosti.
@ Parametar @ možemo zanemariti jer je to izborni parametar.

Pogledajmo primjer primjera kako bismo bolje razumjeli kako možemo napisati vrijednosti intervala s @ parametra i bez @ parametra :

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

ILI

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

Napomena: možemo koristiti obje gornje izjave jer odgovaraju jedna drugoj. Nadalje, vrijednost intervala može imati izbornu vrijednost preciznosti p s dopuštenim rasponom od 0 do 6.

Primjer tipa podataka PostgreSQL Interval

Pogledajmo jedan primjer primjera da bismo razumjeli kako Intervalni tip podataka PostgreSQL djela.

U donjem primjeru pokušat ćemo pronaći vrijeme 2 sata i 30 minuta prije, na trenutno vrijeme prošle godine ; koristit ćemo sljedeće naredbe:

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

Izlaz

Nakon izvršenja gornje naredbe, dobit ćemo donji izlaz koji se prikazuje 2 sata i 30 minuta prije prošle godine :

Interval PostgreSQL

Vidjeli smo primarni primjer intervalnog tipa podataka i razumjeli njegov rad. Sada ćemo vidjeti ulazni i izlazni format vrijednosti intervala.

Prvo ćemo razumjeti Vrijednost PostgreSQL intervala za format unosa :

Intervalni ulazni format PostgreSQL

U PostgreSQL-u imamo sljedeće opširna sintaksa, koji nam pomaže da zapišemo vrijednosti intervala:

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

Imamo dolje navedene parametre koji se koriste u gornjoj sintaksi:

Parametar Opis
količina A količina je broj, koji također prihvaća znakove poput + ili -
jedinica The jedinica može biti bilo koji tisućljeće, stoljeće, desetljeće, godina, mjesec, tjedan, dan, sat, minuta, sekunda, milisekunda, mikrosekunda, ili skraćenica može biti sljedeća y, m, d, itd. a oblici množine mogu biti mjeseci, dana itd.
smjer The smjer parametar može biti prije ili prazan niz.

Napomena: Gornja sintaksa također se koristi za format izlaza intervala i poznata je kao postgres_verbose.

U donjem primjeru prikazat ćemo neke vrijednosti intervala u kojima koristimo verbose sintaksa :

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

Format intervala ISO 8601

Osim gornje opširne sintakse, za pisanje vrijednosti intervala uz pomoć ISO 8601-vrijeme intervalima, PostgreSQL nam nudi dva načina, koji su sljedeći:

    Format oznaka Alternativni format

Format oznaka za ISO 8601 je sljedeći:

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

U gornjem formatu, bitna vrijednost intervala počinje s slovo P , i slovo T koristi se za definiranje jedinica za vrijeme dana .

Donja tablica prikazuje ISO 8601 interval kratice jedinica:

Skraćenica Opis
I Godine
M Mjeseci (za datumski dio)
U Tjedni
D dana
H Sati
M Minuta (za vremenski dio)
S sekundi

Napomena: M može biti mjesec ili minuta ovisno o tome izgleda li prije ili poslije slova T.

Pogledajmo primjer ISO 8601 oznake format za naše bolje razumijevanje:

The ISO 8601 format oznaka može se napisati za interval od 5 godina 4 mjeseca 3 dana 2 sata 1 minuta 1 sekunda :

 P5Y4M3DT2H1M1S 

I alternativni oblik ISO 8601 je kako je prikazano u nastavku:

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

I također počinje s slovo P i slovo T, koji dijeli vrijeme i datum dijelovi vrijednosti intervala.

Na primjer, ISO 8601 alternativni oblik može se pisati za 5 godina 4 mjeseca 3 dana 2 sata 1 minuta 1 sekunda, kako je prikazano dolje:

 P0005-04-03T02:01:01 

PostgreSQL intervalni izlazni format

PostgreSQL intervalski izlazni format vrijednosti intervala može se postaviti uz pomoć POSTAVITE intervalski stil naredba, kao što možemo vidjeti u primjeru u nastavku:

 SET intervalstyle = 'iso_8601'; 

PostgreSQL sadrži četiri različita izlazna formata, kao što su:

    iso_8601 postgres_verbose Postgres sql standard

Napomena: za formatiranje vrijednosti intervala, PostgreSQL prema zadanim postavkama koristi Postgres stil.

Pogledajmo primjer našeg boljeg razumijevanja:

Donja naredba koristi se za prikaz 5 godina 4 mjeseca 3 dana 2 sata 1 minuta 1 sekunda u četiri različita izlazna formata:

Za ISO_8601 izlazni format

U donjoj naredbi, hoćemo POSTAVITE the intervalski stil kao iso_8601 za gore navedenu vrijednost intervala:

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

Izlaz

Nakon izvršenja gornje naredbe, dobit ćemo rezultat u nastavku, koji predstavlja iso_8601 izlazni format intervala:

Interval PostgreSQL

Za postgres_verbose izlazni format

U donjoj naredbi, hoćemo POSTAVITE the intervalski stil kao postgres_verbose za gore navedenu vrijednost intervala:

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

Izlaz

Dobit ćemo rezultat u nastavku nakon implementacije gornje naredbe, koja pokazuje postgres_verbose izlazni format intervala:

diskretna matematička negacija
Interval PostgreSQL

Za Postgres izlazni format

U donjoj naredbi, hoćemo POSTAVITE the intervalski stil kao Postgres za gore navedenu vrijednost intervala:

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

Izlaz

Dobit ćemo rezultat u nastavku nakon uspješnog izvršavanja gornje naredbe, koja prikazuje Postgres izlazni format intervala:

Interval PostgreSQL

Za Sql_standardni izlazni format

U donjoj naredbi, hoćemo POSTAVITE the intervalski stil kao sql_standard za gore navedenu vrijednost intervala:

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

Izlaz

Dobit ćemo rezultat u nastavku nakon uspješnog izvršavanja gornje naredbe, koja predstavlja sql_standard izlazni format intervala:

Interval PostgreSQL

Promjena PostgreSQL intervala u string

Možemo koristiti TO_CHAR() funkcija za promjenu vrijednosti intervala u niz.

Sintaksa za promjenu PostgreSQL intervala u niz

 TO_CHAR(interval,format) 

The TO_CHAR() funkcija uzima prva izjava kao vrijednost intervala i još jedan kao format i dohvaća niz, prikazujući interval u određenom formatu.

U donjem primjeru koristit ćemo funkciju TO_CHAR(), koja pretvara PostgreSQL interval u vrijednost niza:

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

Izlaz

Nakon uspješnog izvršavanja gornje naredbe, dobit ćemo rezultat u nastavku:

Interval PostgreSQL

Operatori i funkcije povezani s intervalom PostgreSQL

Intervalni operatori

Možemo koristiti sljedeće +, -, *, itd. aritmetički operator da biste dobili vrijednosti intervala.

Pogledajmo donji primjer radi boljeg razumijevanja:

U sljedećoj naredbi koristit ćemo aritmetički operator (+) uz pomoć PostgreSQL intervalnog tipa podataka:

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

Izlaz

Dobit ćemo rezultat u nastavku implementacijom gornje naredbe, kao što je prikazano u nastavku:

Interval PostgreSQL

U sljedećoj naredbi koristit ćemo aritmetički operator (-) uz pomoć PostgreSQL intervalnog tipa podataka:

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

Izlaz

Implementacijom gornje naredbe dobit ćemo rezultat u nastavku:

Interval PostgreSQL

U sljedećoj naredbi koristit ćemo aritmetički operator (*) uz pomoć PostgreSQL intervalnog tipa podataka:

 SELECT 400 * INTERVAL '5 minute'; 

Izlaz

Implementacijom gornje naredbe dobit ćemo rezultat u nastavku:

Interval PostgreSQL

Izdvajanje podataka iz PostgreSQL intervala

Možemo koristiti EKSTRAKT() funkcija za izdvajanje polja iz vrijednosti intervala, na primjer, godina, mjesec, datum itd .

računati različito

Sintaksa za izvlačenje podataka iz PostgreSQL intervala

 EXTRACT(field FROM interval) 

U gornjoj sintaksi možemo koristiti godina, mjesec, datum, sat, minute , itd., u parametru polja.

The ekstrakt funkcija vraća vrijednost tipa dvostruke preciznosti ako želimo izdvojiti iz intervala.

U sljedećem primjeru koristit ćemo EKSTRAKT() funkcija za dohvaćanje vrijednosti dvostruke preciznosti.

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

Izlaz

Nakon uspješnog izvršavanja gornje naredbe, dobit ćemo donji izlaz koji prikazuje datumski dio za dvostruku preciznost vrijednosti kao što je prikazano u nastavku:

Interval PostgreSQL

Podešavanje vrijednosti PostgreSQL intervala

Imamo dvije funkcije, justify_days i justify_hours u PostgreSQL, što nam dopušta izmjenu interval od 24 sata smatrati kao jednog dana i interval od 30 dana smatrati kao jedan mjesec .

Pogledajmo primjer da bismo razumjeli kako prilagođavamo vrijednosti PostgreSQL intervala:

U sljedećoj naredbi koristit ćemo funkcija justify_days i justify_hours:

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

Izlaz

Nakon izvršenja gornje naredbe, dobit ćemo sljedeći rezultat, koji prikazuje interval od 30 dana kao jedan mjesec i interval od 24 sata kao jedan dan :

Interval PostgreSQL

Osim toga, opravdati_interval funkcija regulira vrijednosti intervala uz pomoć justify_days i justify_hours s dodanim izmjenama znaka:

U sljedećem primjeru koristit ćemo funkciju justifiy_interval s naredbom SELECT:

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

Izlaz

Nakon implementacije gornje naredbe dobit ćemo sljedeći izlaz:

Interval PostgreSQL

Pregled

u Intervalni tip podataka PostgreSQL odjeljak naučili smo sljedeće teme:

  • The Intervalni podaci PostgreSQL tip se koristi za pohranjivanje i raspoređivanje razdoblja u godine, mjeseci, dani, sati, minute, sekunde.
  • Koristili smo različite Intervalne funkcije , na primjer, NOW(), TO_CHAR(), za poboljšanje vrijednosti intervala iz određene tablice.
  • Vrijednosti PostgreSQL intervala imaju oboje ulaz i izlaz format intervala.
  • Vrijednosti PostgreSQL intervala možemo podesiti uz pomoć funkcije justify_days(), justify_hours, justify_interval().
  • Možemo koristiti EKSTRAKT() funkcija za izdvajanje vrijednosti polja intervala.