logo

Interval PostgreSQL

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 :

Interval PostgreSQL

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:

    Oblika označevalcev Alternativna oblika

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:

    iso_8601 postgres_verbose Postgres sql standard

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:

Interval PostgreSQL

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

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:

Interval PostgreSQL

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:

Interval PostgreSQL

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:

Interval PostgreSQL

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:

Interval PostgreSQL

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:

Interval PostgreSQL

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:

Interval PostgreSQL

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:

Interval PostgreSQL

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 :

Interval PostgreSQL

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:

Interval PostgreSQL

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.