Tässä osiossa aiomme ymmärtää järjestelmän toimintaa PostgreSQL-välin tietotyyppi, ja näemme myös esimerkkejä -lta Intervallitietotyyppi. Ja enimmäkseen käytetty Interval toimintoja , esimerkiksi, NOW(), TO_CHAR(), EXTRACT(), justify_days(), justify_hours(), justify_interval(). The Tulo ja lähtö muoto PostgreSQL-väliarvoille.
Mikä on PostgreSQL Interval Data Type?
PostgreSQL:ssä Intervalli on toinen tietotyyppi, jota käytetään ajan tallentamiseen ja käyttöönottoon vuodet, kuukaudet, päivät, tunnit, minuutit, sekunnit, jne. Ja kuukausia ja päiviä arvot ovat kokonaislukujen arvot , kun taas toisen kenttä voi olla murto-osien arvot.
PostgreSQL-välin tietotyypin arvo sisältää 16 tavua tallennustilaa koko, joka auttaa tallentamaan ajanjakson hyväksyttävällä alueella - 178000000 vuotta 178000000 vuotta.
katkaise ja poista ero
Huomautus: Toisessa kentässä otettujen murtolukujen lukumäärä tunnetaan tarkkuudella p.
PostgreSQL Interval -tietotyypin syntaksi
PostgreSQL Interval -tietotyypin syntaksi on seuraava:
@ interval [ fields ] [ (p) ]
Yllä olevassa syntaksissa meillä on seuraavat parametrit:
Parametri | Kuvaus |
---|---|
kentät | Kenttäparametria käytetään näyttämään aika. |
s | P:tä käytetään tarkkuusarvon näyttämiseen. |
@ | Voimme jättää huomiotta @-parametrin, koska se on valinnainen parametri. |
Katsotaanpa esimerkkiesimerkkiä, jotta ymmärrämme paremmin, kuinka voimme kirjoittaa intervalliarvot kanssa @-parametri ja ilman @-parametria :
@interval '6 months before'; @interval '2 hours 30 minutes';
TAI
interval '6 months before'; interval '2 hours 30 minutes';
Huomautus: Voimme käyttää molempia yllä olevia lauseita, koska ne vastaavat toisiaan. Lisäksi intervalliarvolla voi olla valinnainen tarkkuusarvo p, jonka sallittu alue on aloitettu 0 - 6.
Esimerkki PostgreSQL Interval -tietotyypistä
Katsotaanpa yksi esimerkkiesimerkki ymmärtääksemme, miten PostgreSQL-välin tietotyyppi toimii.
Alla olevassa esimerkissä yritämme löytää ajan 2 tuntia 30 minuuttia ennen, osoitteessa nykyinen aika viime vuodesta ; käytämme seuraavia komentoja:
SELECT now(), now() - INTERVAL '6 months 2 hours 30 minutes' AS '2 hours 30 minutes before last year';
Lähtö
Yllä olevan komennon suorittamisen jälkeen saamme alla olevan tulosteen, joka näkyy 2 tuntia 30 minuuttia ennen viime vuotta :
Olemme nähneet ensisijaisen esimerkin intervallitietotyypistä ja ymmärrämme sen toiminnan. Nyt näemme syöttö- ja tulostusmuodon intervalliarvot.
Ensinnäkin ymmärrämme PostgreSQL-välin arvo syöttömuodolle :
PostgreSQL-välin syöttömuoto
PostgreSQL:ssä meillä on seuraava monisanainen syntaksi, joka auttaa meitä kirjoittamaan intervalliarvot:
quantity unit [quantity unit...] [direction]
Meillä on seuraavat parametrit, joita käytetään yllä olevassa syntaksissa:
Parametri | Kuvaus |
---|---|
määrä | A määrä on numero, joka hyväksyy myös merkkejä, kuten + tai - |
yksikkö | The yksikkö voi olla mikä tahansa vuosituhat, vuosisata, vuosikymmen, vuosi, kuukausi, viikko, päivä, tunti, minuutti, sekunti, millisekunti, mikrosekunti, tai lyhenne voi olla seuraava y, m, d jne. ja monikkomuodot voivat olla kuukausia, päiviä , jne. |
suunta | The suunta parametri voi olla sitten tai tyhjä merkkijono. |
Huomautus: Yllä olevaa syntaksia käytetään myös välitulostusmuodossa ja tunnetaan nimellä postgres_verbose.
Alla olevassa esimerkissä näytämme joitain intervalliarvoja, joissa käytämme monisanainen syntaksi :
INTERVAL '1 year 5 months 5 days'; INTERVAL '1 weeks ago';
ISO 8601 -intervallimuoto
Yllä olevan monisanaisen syntaksin lisäksi intervalliarvojen kirjoittamiseen avulla ISO 8601-aika välein, PostgreSQL tarjoaa meille kaksi tapaa, jotka ovat seuraavat:
ISO 8601 -tunnisteiden muoto on seuraava:
P quantity unit [ quantity unit ...] [ T [ quantity unit ...]]
Yllä olevassa muodossa intervalliarvo olennainen alkaa kirjaimella kirjain p , ja kirjain t käytetään määrittelemään kellonajan yksikkö .
Alla oleva taulukko näyttää ISO 8601 -väli yksiköiden lyhenteet:
Lyhenne | Kuvaus |
---|---|
JA | Vuosia |
M | Kuukaudet (päivämäärän osalta) |
SISÄÄN | Viikot |
D | päivää |
H | Tuntia |
M | Minuutit (aikaosaan) |
S | Sekuntia |
Huomautus: M voi olla kuukausia tai minuutteja sen mukaan, näyttääkö se ennen tai jälkeen kirjaimen T.
Katsotaanpa esimerkkiä ISO 8601 -tunnukset muoto, jotta ymmärrämme paremmin:
The ISO 8601 -nimikkeiden muoto voidaan kirjoittaa välille 5 vuotta 4 kuukautta 3 päivää 2 tuntia 1 minuuttia 1 sekunti :
P5Y4M3DT2H1M1S
Ja vaihtoehtoinen muoto ISO 8601 on alla olevan kuvan mukainen:
P [ years-months-days ] [ T hours:minutes:seconds ]
Ja se myös alkaa kirjain P ja kirjain T, joka jakaa aika ja päivämäärä osia intervalliarvosta.
Esimerkiksi, ISO 8601 vaihtoehtoinen muoto varten voidaan kirjoittaa 5 vuotta 4 kuukautta 3 päivää 2 tuntia 1 minuutti 1 sekunti, kuten alla:
P0005-04-03T02:01:01
PostgreSQL-välin tulostusmuoto
Intervalliarvojen PostgreSQL-välin tulostusmuoto voidaan asettaa ASETA intervalltyyli komento, kuten näemme alla olevassa esimerkissä:
SET intervalstyle = 'iso_8601';
PostgreSQL sisältää neljä erilaista tulostusmuotoa, kuten:
Huomautus: PostgreSQL käyttää oletusarvoisesti väliarvojen muotoilemiseen Postgres-tyyliä.
Katsotaanpa esimerkki paremmasta ymmärryksestämme:
Alla olevaa komentoa käytetään näyttämään 5 vuotta 4 kuukautta 3 päivää 2 tuntia 1 minuutti 1 sekunti neljässä eri tulostusmuodossa:
ISO_8601-tulostusmuodolle
Alla olevassa komennossa teemme ASETA the intervalltyyli kuten iso_8601 edellä mainitulle intervalliarvolle:
SET intervalstyle = 'iso_8601'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minute 1 second';
Lähtö
Yllä olevan komennon suorittamisen jälkeen saamme alla olevan tuloksen, joka edustaa iso_8601 intervallitulostusmuoto:
Postgres_verbose-tulostusmuodolle
Alla olevassa komennossa teemme ASETA the intervalltyyli kuten postgres_verbose edellä mainitulle intervalliarvolle:
SET intervalstyle = 'postgres_verbose'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Lähtö
Saamme alla olevan tuloksen suoritettuamme yllä olevan komennon, joka näyttää postgres_verbose intervallitulostusmuoto:
vastaavuuslakeja
Postgres-tulostusmuodolle
Alla olevassa komennossa teemme ASETA the intervalltyyli kuten Postgres edellä mainitulle intervalliarvolle:
SET intervalstyle = 'postgres'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Lähtö
Saamme alla olevan tuloksen suoritettuamme onnistuneesti yllä olevan komennon, joka näyttää Postgres intervallitulostusmuoto:
Sql_standard-tulostusmuodolle
Alla olevassa komennossa teemme ASETA the intervalltyyli kuten sql_standardi edellä mainitulle intervalliarvolle:
SET intervalstyle = 'sql_standard'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Lähtö
Saamme alla olevan tuloksen suoritettuamme onnistuneesti yllä olevan komennon, joka edustaa sql_standardi intervallitulostusmuoto:
PostgreSQL-välin muuttaminen merkkijonoksi
Voimme käyttää TO_CHAR() funktio muuttaa intervalliarvon merkkijonoksi.
Syntaksi PostgreSQL-välin muuttamiseen merkkijonoksi
TO_CHAR(interval,format)
The TO_CHAR()-funktio ottaa ensimmäinen lausunto kuten intervalliarvo ja toinen kuten muoto ja hakee merkkijonon, joka näyttää intervallin tietyssä muodossa.
Alla olevassa esimerkissä käytämme TO_CHAR()-funktiota, joka muuntaa PostgreSQL-välin merkkijonoarvoksi:
SELECT TO_CHAR( INTERVAL '15h 15m 15s','HH24:MI:SS' );
Lähtö
Kun yllä oleva komento on suoritettu onnistuneesti, saamme seuraavan tuloksen:
PostgreSQL-väliin liittyvät operaattorit ja toiminnot
Intervallioperaattorit
Voimme käyttää seuraavaa +, -, * jne. aritmeettinen operaattori saadaksesi intervalliarvot.
Katsotaanpa alla olevaa esimerkkiä ymmärtääksemme paremmin:
Seuraavassa komennossa käytämme aritmeettinen operaattori (+) PostgreSQL-välitietotyypin avulla:
SELECT INTERVAL '1h 50m' + INTERVAL '5m';
Lähtö
Saamme alla olevan tuloksen yllä olevan komennon toteuttamisesta, kuten alla on esitetty:
Seuraavassa komennossa käytämme aritmeettinen operaattori (-) PostgreSQL-välitietotyypin avulla:
SELECT INTERVAL '3h 50m' - INTERVAL '30m';
Lähtö
Suorittaessamme yllä olevan komennon, saamme seuraavan tuloksen:
Seuraavassa komennossa käytämme aritmeettinen operaattori (*) PostgreSQL-välitietotyypin avulla:
SELECT 400 * INTERVAL '5 minute';
Lähtö
Suorittaessamme yllä olevan komennon, saamme seuraavan tuloksen:
Tietojen purkaminen PostgreSQL-väliltä
Voimme käyttää OTTAA TALTEEN() funktio poimimaan kentät intervalliarvosta, esim. vuosi, kuukausi, päivämäärä jne .
Syntaksi tietojen purkamiseksi PostgreSQL-välistä
EXTRACT(field FROM interval)
Yllä olevassa syntaksissa voimme käyttää vuosi, kuukausi, päivämäärä, tunti, minuutit jne. kenttäparametrissa.
The ottaa talteen funktio palauttaa tyypin kaksinkertaisen tarkkuuden arvon, jos haluamme poimia intervallista.
Seuraavassa esimerkissä käytämme OTTAA TALTEEN() toiminto noutaa kaksinkertaisen tarkkuuden arvon.
SELECT EXTRACT (MINUTE FROM INTERVAL '2 hours 30 minutes' );
Lähtö
Kun yllä oleva komento on suoritettu onnistuneesti, saamme alla olevan lähdön, joka näyttää päivämäärä osa kaksoistarkkuutta varten arvot alla olevan kuvan mukaisesti:
PostgreSQL-välin arvojen säätäminen
Meillä on kaksi toimintoa, perustella_päivät ja perustella_tunnit PostgreSQL:ssä, jonka avulla voimme muokata 24 tunnin välein pitää yksi päivä ja väli 30 päivää pitää yksi kuukausi .
Katsotaanpa esimerkkiä ymmärtääksemme, kuinka säädämme PostgreSQL-välin arvoja:
Seuraavassa komennossa käytämme justify_days ja justify_hours -funktio:
SELECT justify_days(INTERVAL '30 days'), justify_hours(INTERVAL '24 hours');
Lähtö
java lajittelee luetteloa
Yllä olevan komennon suorittamisen jälkeen saamme seuraavan tuloksen, joka näyttää välin 30 päivää kuin yksi kuukausi ja 24 tunnin välein yhtenä päivänä :
Sen lisäksi, justify_interval toiminto säätelee intervalliarvoja avulla perustella_päivät ja perustella_tunnit lisätyillä merkkimuutoksilla:
Seuraavassa esimerkissä käytämme justfiy_interval-funktiota SELECT-komennon kanssa:
SELECT justify_interval(interval '6 months -1 hour');
Lähtö
Saamme seuraavan lähdön yllä olevan komennon toteuttamisen jälkeen:
Yleiskatsaus
Vuonna PostgreSQL-välin tietotyyppi -osiossa olemme oppineet seuraavat aiheet:
- The PostgreSQL-välin tiedot tyyppiä käytetään ajanjakson tallentamiseen ja käyttöönottoon vuotta, kuukautta, päivää, tuntia, minuuttia, sekuntia.
- Käytimme erilaisia Intervallitoiminnot , esimerkiksi, NYT(), TO_CHAR(), parantaaksesi tietyn taulukon intervalliarvoja.
- PostgreSQL-väliarvoilla on molemmat tulo ja lähtö intervallimuoto.
- Voimme säätää PostgreSQL-välin arvoja avulla justify_days(), justify_hours, justify_interval()-funktiot.
- Voimme käyttää OTTAA TALTEEN() funktio poimimaan intervallikentän arvot.