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