V tem razdelku bomo razumeli delovanje Intervalni podatkovni tip PostgreSQL, in tudi vidimo primeri od Intervalni podatkovni tip. In večinoma uporablja Interval funkcije , na primer, NOW(), TO_CHAR(), EXTRACT(), justify_days(), justify_hours(), justify_interval(). The Vhod in izhod format za intervalne vrednosti PostgreSQL.
Kaj je Intervalni podatkovni tip PostgreSQL?
V PostgreSQL je Interval je druga vrsta podatkovne vrste, ki se uporablja za shranjevanje in uvajanje časa leta, meseci, dnevi, ure, minute, sekunde, itd. In meseci in dnevi vrednote so vrednosti celih števil , medtem ko je drugo polje je lahko vrednosti ulomkov.
Vrednost podatkovnega tipa intervala PostgreSQL vključuje 16 bajtov prostora za shranjevanje velikost, ki pomaga shraniti obdobje s sprejemljivim obsegom od - 178000000 let do 178000000 leta.
razvrsti matrični seznam
Opomba: Število ulomkov v drugem polju je znano kot natančnost p.
Sintaksa podatkovnega tipa PostgreSQL Interval
Sintaksa podatkovnega tipa PostgreSQL Interval je naslednja:
@ interval [ fields ] [ (p) ]
V zgornji sintaksi imamo naslednje parametre:
Parameter | Opis |
---|---|
polja | Parameter polja se uporablja za prikaz časa. |
str | P se uporablja za prikaz natančne vrednosti. |
@ | Parameter @ lahko prezremo, saj je izbirni parameter. |
Oglejmo si vzorčni primer, da bomo bolje razumeli, kako lahko zapišemo vrednosti intervala z @ parameter in brez @ parametra :
@interval '6 months before'; @interval '2 hours 30 minutes';
ALI
interval '6 months before'; interval '2 hours 30 minutes';
Opomba: Uporabimo lahko obe zgornji izjavi, saj ustrezata druga drugi. Poleg tega ima lahko vrednost intervala izbirno vrednost natančnosti p z dovoljenim obsegom, ki se začne od 0 do 6.
Primer podatkovnega tipa PostgreSQL Interval
Oglejmo si en vzorčni primer, da bomo razumeli, kako Intervalni podatkovni tip PostgreSQL dela.
V spodnjem primeru bomo poskušali najti čas 2 uri 30 minut prej, pri trenutni čas lanskega leta ; uporabili bomo naslednje ukaze:
SELECT now(), now() - INTERVAL '6 months 2 hours 30 minutes' AS '2 hours 30 minutes before last year';
Izhod
Po izvedbi zgornjega ukaza bomo dobili spodnji izpis, ki se prikaže 2 uri 30 minut predlani :
Videli smo primarni primer intervalnega podatkovnega tipa in razumeli njegovo delovanje. Zdaj bomo videli vhodni in izhodni format intervalne vrednosti.
Najprej bomo razumeli Vrednost intervala PostgreSQL za obliko vnosa :
Intervalni vnosni format PostgreSQL
V PostgreSQL imamo naslednje besedna sintaksa, ki nam pomaga zapisati intervalne vrednosti:
quantity unit [quantity unit...] [direction]
Imamo spodnje parametre, ki se uporabljajo v zgornji sintaksi:
Parameter | Opis |
---|---|
količino | A količino je število, ki sprejema tudi znake, kot je + oz - |
enota | The enota lahko katera koli tisočletje, stoletje, desetletje, leto, mesec, teden, dan, ura, minuta, sekunda, milisekunda, mikrosekunda, ali okrajšava je lahko naslednja y, m, d itd. in množinske oblike so lahko meseci, dnevi itd. |
smer | The smer parameter je lahko nazaj ali prazen niz. |
Opomba: Zgornja sintaksa se uporablja tudi za intervalni izhodni format in je znana kot postgres_verbose.
V spodnjem primeru bomo prikazali nekaj intervalnih vrednosti, kjer uporabljamo besedna sintaksa :
INTERVAL '1 year 5 months 5 days'; INTERVAL '1 weeks ago';
Intervalni format ISO 8601
Poleg zgornje besedne sintakse, za pisanje intervalnih vrednosti s pomočjo Čas ISO 8601 intervalih nam PostgreSQL ponuja dva načina, ki sta naslednja:
Format označevalcev za ISO 8601 je naslednji:
P quantity unit [ quantity unit ...] [ T [ quantity unit ...]]
V zgornjem formatu se vrednost intervala bistveno začne z črka P , in črka T se uporablja za opredelitev enota za čas dneva .
Spodnja tabela prikazuje Interval ISO 8601 okrajšave enot:
Okrajšava | Opis |
---|---|
IN | leta |
M | Meseci (za datumski del) |
IN | tedne |
D | Dnevi |
H | Ure |
M | Minute (za časovni del) |
S | sekund |
Opomba: M je lahko mesec ali minuta glede na to, ali je videti pred ali za črko T.
Poglejmo si primer Označevalci ISO 8601 format za naše boljše razumevanje:
The Format označevalcev ISO 8601 lahko zapišemo za interval 5 let 4 mesece 3 dni 2 uri 1 minuto 1 sekundo :
P5Y4M3DT2H1M1S
In alternativna oblika ISO 8601 je, kot je prikazano spodaj:
P [ years-months-days ] [ T hours:minutes:seconds ]
In tudi začne se z črka P in črka T, ki razcepi čas in datum deli vrednosti intervala.
Na primer, Alternativna oblika ISO 8601 se lahko piše za 5 let 4 mesece 3 dni 2 uri 1 minuto 1 sekundo, kot je prikazano spodaj:
P0005-04-03T02:01:01
Intervalni izhodni format PostgreSQL
Intervalni izhodni format intervalnih vrednosti PostgreSQL lahko nastavite s pomočjo NASTAVI intervalni slog ukaz, kot lahko vidimo v spodnjem primeru:
SET intervalstyle = 'iso_8601';
PostgreSQL vsebuje štiri različne izhodne formate, kot so:
Opomba: za oblikovanje intervalnih vrednosti PostgreSQL privzeto uporablja slog Postgres.
Poglejmo primer našega boljšega razumevanja:
Spodnji ukaz se uporablja za prikaz 5 let 4 mesece 3 dni 2 uri 1 minuto 1 sekundo v štirih različnih izhodnih formatih:
Za izhodni format ISO_8601
V spodnjem ukazu bomo NASTAVI the intervalni slog kot iso_8601 za zgoraj omenjeno intervalno vrednost:
SET intervalstyle = 'iso_8601'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minute 1 second';
Izhod
Po izvedbi zgornjega ukaza bomo dobili spodnji rezultat, ki predstavlja iso_8601 intervalni izhodni format:
Za postgres_verbose izhodni format
V spodnjem ukazu bomo NASTAVI the intervalni slog kot postgres_verbose za zgoraj omenjeno vrednost intervala:
SET intervalstyle = 'postgres_verbose'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Izhod
Po izvedbi zgornjega ukaza bomo dobili spodnji rezultat, ki prikazuje postgres_verbose intervalni izhodni format:
koliko mest v ZDA
Za izhodni format Postgres
V spodnjem ukazu bomo NASTAVI the intervalni slog kot Postgres za zgoraj omenjeno intervalno vrednost:
SET intervalstyle = 'postgres'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Izhod
Po uspešni izvedbi zgornjega ukaza bomo dobili spodnji rezultat, ki prikazuje Postgres intervalni izhodni format:
Za Sql_standardni izhodni format
V spodnjem ukazu bomo NASTAVI the intervalni slog kot sql_standard za zgoraj omenjeno intervalno vrednost:
SET intervalstyle = 'sql_standard'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Izhod
Spodnji rezultat bomo dobili po uspešni izvedbi zgornjega ukaza, ki predstavlja sql_standard intervalni izhodni format:
Spreminjanje intervala PostgreSQL v niz
Lahko uporabimo TO_CHAR() funkcijo za spreminjanje vrednosti intervala v niz.
Sintaksa za spreminjanje intervala PostgreSQL v niz
TO_CHAR(interval,format)
The funkcija TO_CHAR(). vzame prva izjava kot vrednost intervala in še enega kot format in pridobi niz, ki prikazuje interval v določenem formatu.
V spodnjem primeru bomo uporabili funkcijo TO_CHAR(), ki interval PostgreSQL pretvori v vrednost niza:
SELECT TO_CHAR( INTERVAL '15h 15m 15s','HH24:MI:SS' );
Izhod
Po uspešni izvedbi zgornjega ukaza bomo dobili spodnji rezultat:
Operatorji in funkcije, povezani z intervali PostgreSQL
Intervalni operatorji
Uporabimo lahko naslednje +, -, * itd. aritmetični operator da dobite intervalne vrednosti.
Oglejmo si spodnji primer za boljše razumevanje:
V naslednjem ukazu bomo uporabili aritmetični operator (+) s pomočjo intervalnega podatkovnega tipa PostgreSQL:
SELECT INTERVAL '1h 50m' + INTERVAL '5m';
Izhod
Pri izvajanju zgornjega ukaza bomo dobili spodnji rezultat, kot je prikazano spodaj:
V naslednjem ukazu bomo uporabili aritmetični operator (-) s pomočjo intervalnega podatkovnega tipa PostgreSQL:
SELECT INTERVAL '3h 50m' - INTERVAL '30m';
Izhod
Po izvedbi zgornjega ukaza bomo dobili spodnji rezultat:
V naslednjem ukazu bomo uporabili aritmetični operator (*) s pomočjo intervalnega podatkovnega tipa PostgreSQL:
SELECT 400 * INTERVAL '5 minute';
Izhod
Po izvedbi zgornjega ukaza bomo dobili spodnji rezultat:
Pridobivanje podatkov iz intervala PostgreSQL
Lahko uporabimo IZVLEČEK() funkcija za ekstrahiranje polj iz intervalne vrednosti, na primer leto, mesec, datum itd .
poravnaj sliko s css
Sintaksa za pridobivanje podatkov iz intervala PostgreSQL
EXTRACT(field FROM interval)
V zgornji sintaksi lahko uporabimo leto, mesec, datum, ura, minute , itd., v parametru polja.
The ekstrakt funkcija vrne vrednost tipa dvojna natančnost, če želimo izluščiti iz intervala.
V naslednjem primeru bomo uporabili IZVLEČEK() funkcijo za pridobitev vrednosti dvojne natančnosti.
SELECT EXTRACT (MINUTE FROM INTERVAL '2 hours 30 minutes' );
Izhod
Po uspešni izvedbi zgornjega ukaza bomo dobili spodnji izhod, ki prikaže datumski del za dvojno natančnost vrednosti, kot je prikazano spodaj:
Prilagajanje vrednosti intervalov PostgreSQL
Imamo dve funkciji, justify_days in justify_hours v PostgreSQL, ki nam omogoča spreminjanje interval 24 ur obravnavati kot nekega dne in interval od 30-dnevni obravnavati kot en mesec .
Oglejmo si primer, da razumemo, kako prilagajamo vrednosti intervalov PostgreSQL:
V naslednjem ukazu bomo uporabili funkciji justify_days in justify_hours:
SELECT justify_days(INTERVAL '30 days'), justify_hours(INTERVAL '24 hours');
Izhod
Po izvedbi zgornjega ukaza bomo dobili naslednji rezultat, ki prikazuje interval od 30 dni kot en mesec in interval 24 ur kot en dan :
Poleg tega je justify_interval funkcija uravnava intervalne vrednosti s pomočjo justify_days in justify_hours z dodanimi spremembami znaka:
V naslednjem primeru bomo uporabili funkcijo justifiy_interval z ukazom SELECT:
SELECT justify_interval(interval '6 months -1 hour');
Izhod
Po izvedbi zgornjega ukaza bomo dobili naslednji rezultat:
Pregled
V Intervalni podatkovni tip PostgreSQL razdelku, smo se naučili naslednje teme:
- The Intervalni podatki PostgreSQL tip se uporablja za shranjevanje in razporeditev obdobja v leta, meseci, dnevi, ure, minute, sekunde.
- Uporabljali smo različne Intervalne funkcije , na primer, NOW(), TO_CHAR(), za izboljšanje vrednosti intervalov iz določene tabele.
- Vrednosti intervalov PostgreSQL imajo oboje vhod in izhod intervalni format.
- Vrednosti intervalov PostgreSQL lahko prilagodimo s pomočjo funkcije justify_days(), justify_hours, justify_interval().
- Lahko uporabimo IZVLEČEK() funkcija za ekstrahiranje vrednosti intervalnih polj.