logo

PostgreSQL-intervall

I denne delen skal vi forstå virkemåten til PostgreSQL Interval datatype, og vi ser også eksempler av Intervalldatatype. Og mest brukt Interval funksjoner , for eksempel, NÅ(), TO_CHAR(), EXTRACT(), justify_days(), justify_hours(), justify_interval(). De Inngang og utgang format for PostgreSQL-intervallverdier.

Hva er PostgreSQL Interval Data Type?

I PostgreSQL er Intervall er en annen type datatype som brukes til å lagre og distribuere tid i år, måneder, dager, timer, minutter, sekunder, osv. Og måneder og dager verdier er heltallsverdier , mens andres felt kan være brøkverdier.

PostgreSQL intervall datatype verdi involverer 16 byte lagring størrelse, som bidrar til å lagre en periode med det akseptable området fra - 178000000 år til 178000000 år.

hvordan utføre et skript

Merk: Antall brøksiffer tatt i det andre feltet er kjent som presisjonen p.

Syntaks for PostgreSQL Interval datatype

Syntaksen til PostgreSQL-intervalldatatypen er som følger:

 @ interval [ fields ] [ (p) ] 

I syntaksen ovenfor har vi følgende parametere:

Parameter Beskrivelse
Enger Feltparameteren brukes til å vise tiden.
s P brukes til å vise presisjonsverdi.
@ Vi kan ignorere @-parameteren da det er en valgfri parameter.

La oss se et eksempel for å bedre forstå hvordan vi kan skrive intervallverdiene med @ parameter og uten @ parameter :

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

ELLER

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

Merk: Vi kan bruke begge utsagnene ovenfor ettersom de samsvarer med hverandre. Videre kan en intervallverdi ha en valgfri presisjonsverdi p med det tillatte området startes fra 0 til 6.

Eksempel på PostgreSQL Interval datatype

La oss se ett eksempel for å forstå hvordan PostgreSQL Interval datatype virker.

I eksemplet nedenfor vil vi prøve å finne tidspunktet for 2 timer 30 minutter før,nåværende tid i fjor ; vi vil bruke følgende kommandoer:

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

Produksjon

Etter å ha utført kommandoen ovenfor, vil vi få utgangen nedenfor, som vises 2 timer 30 minutter før fjoråret :

PostgreSQL-intervall

Vi har sett det primære eksemplet på intervalldatatype og forstår hvordan den fungerer. Nå vil vi se inngangs- og utdataformatet til intervallverdier.

For det første vil vi forstå PostgreSQL-intervallverdi for inndataformatet :

PostgreSQL Interval Input Format

I PostgreSQL har vi følgende utførlig syntaks, som hjelper oss å skrive intervallverdiene:

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

Vi har parametrene nedenfor, som brukes i syntaksen ovenfor:

Parameter Beskrivelse
mengde EN mengde er et tall, som også godtar tegn som + eller -
enhet De enhet kan være hvilken som helst årtusen, århundre, tiår, år, måned, uke, dag, time, minutt, sekund, millisekund, mikrosekund, eller forkortelse kan være følgende y, m, d osv. og flertallsformene kan være måneder, dager , etc.
retning De retning parameter kan være siden eller den tomme strengen.

Merk: Syntaksen ovenfor brukes også for intervallutdataformatet og kjent som postgres_verbose.

I eksemplet nedenfor vil vi vise noen intervallverdier der vi bruker utførlig syntaks :

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

ISO 8601-intervallformatet

Foruten den verbose syntaksen ovenfor, å skrive intervallverdiene ved hjelp av ISO 8601-tid intervaller, gir PostgreSQL oss de to måtene, som er som følger:

    Designators format Alternativt format

Designatorformatet for ISO 8601 er som følger:

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

I formatet ovenfor begynner den essensielle intervallverdien med bokstaven P , og bokstaven T brukes til å definere tidsenhet .

Tabellen nedenfor viser ISO 8601 intervall enhetsforkortelser:

Forkortelse Beskrivelse
OG år
M Måneder (for datodelen)
I Uker
D Dager
H Timer
M Minutter (for tidsdelen)
S Sekunder

Merk: M kan være måneder eller minutter basert på om den ser ut før eller etter bokstaven T.

La oss se et eksempel på ISO 8601-betegnelser format for bedre forståelse:

De ISO 8601 designatorformat kan skrives for intervallet på 5 år 4 måneder 3 dager 2 timer 1 minutter 1 sekund :

 P5Y4M3DT2H1M1S 

Og den alternative formen for ISO 8601 er som vist nedenfor:

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

Og det begynner også med bokstaven P og bokstaven T, som deler opp tid og dato deler av intervallverdien.

For eksempel ISO 8601 alternativ form kan skrives for 5 år 4 måneder 3 dager 2 timer 1 minutt 1 sekund, som vist under:

 P0005-04-03T02:01:01 

PostgreSQL-intervallutdataformat

PostgreSQL-intervallutdataformatet for intervallverdier kan stilles inn ved hjelp av SETT intervallstil kommando, som vi kan se i eksemplet nedenfor:

 SET intervalstyle = 'iso_8601'; 

PostgreSQL inneholder fire forskjellige utdataformater, for eksempel:

    iso_8601 postgres_verbose Postgres sql standard

Merk: For å formatere intervallverdiene bruker PostgreSQL Postgres-stilen som standard.

La oss se et eksempel på vår bedre forståelse:

Kommandoen nedenfor brukes til å vise 5 år 4 måneder 3 dager 2 timer 1 minutt 1 sekund i de fire forskjellige utdataformatene:

For ISO_8601 utdataformat

I kommandoen nedenfor vil vi SETT de intervallstil som iso_8601 for den ovennevnte intervallverdien:

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

Produksjon

Etter å ha utført kommandoen ovenfor, vil vi få resultatet nedenfor, som representerer iso_8601 intervallutdataformat:

PostgreSQL-intervall

For postgres_verbose utdataformat

I kommandoen nedenfor vil vi SETT de intervallstil som postgres_verbose for den ovennevnte intervallverdien:

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

Produksjon

Vi vil få resultatet nedenfor etter å ha implementert kommandoen ovenfor, som viser postgres_verbose intervallutdataformat:

de tidlige mukere
PostgreSQL-intervall

For Postgres utdataformat

I kommandoen nedenfor vil vi SETT de intervallstil som Postgres for den ovennevnte intervallverdien:

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

Produksjon

Vi vil få resultatet nedenfor etter vellykket utførelse av kommandoen ovenfor, som viser Postgres intervallutdataformat:

PostgreSQL-intervall

For SQL_standard utdataformat

I kommandoen nedenfor vil vi SETT de intervallstil som sql_standard for den ovennevnte intervallverdien:

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

Produksjon

Vi vil få resultatet nedenfor etter vellykket utførelse av kommandoen ovenfor, som representerer sql_standard intervallutdataformat:

PostgreSQL-intervall

Endre PostgreSQL-intervallet til streng

Vi kan bruke TO_CHAR() funksjon for å endre en intervallverdi til en streng.

Syntaksen for å endre PostgreSQL-intervallet til streng

 TO_CHAR(interval,format) 

De TO_CHAR() funksjon tar første uttalelse som en intervallverdi og en annen som format og henter en streng som viser intervallet i det bestemte formatet.

I eksemplet nedenfor vil vi bruke TO_CHAR()-funksjonen, som konverterer PostgreSQL-intervallet til strengverdien:

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

Produksjon

Etter å ha utført kommandoen ovenfor, vil vi få resultatet nedenfor:

PostgreSQL-intervall

PostgreSQL-intervallrelaterte operatører og funksjoner

Intervalloperatører

Vi kan bruke følgende +, -, *, etc. aritmetisk operator for å få intervallverdiene.

La oss se eksemplet nedenfor for bedre forståelse:

I den følgende kommandoen vil vi bruke aritmetisk operator (+) ved hjelp av PostgreSQL intervalldatatype:

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

Produksjon

Vi vil få resultatet nedenfor ved implementering av kommandoen ovenfor, som vist nedenfor:

PostgreSQL-intervall

I den følgende kommandoen vil vi bruke aritmetisk operator (-) ved hjelp av PostgreSQL intervalldatatype:

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

Produksjon

Når vi implementerer kommandoen ovenfor, får vi følgende resultat:

arv java
PostgreSQL-intervall

I den følgende kommandoen vil vi bruke aritmetisk operator (*) ved hjelp av PostgreSQL intervalldatatype:

 SELECT 400 * INTERVAL '5 minute'; 

Produksjon

Når vi implementerer kommandoen ovenfor, får vi følgende resultat:

PostgreSQL-intervall

Trekker ut data fra et PostgreSQL-intervall

Vi kan bruke EKSTRAKT() funksjon for å trekke ut feltene fra en intervallverdi, for eksempel, år, måned, dato osv .

Syntaksen for å trekke ut data fra et PostgreSQL-intervall

 EXTRACT(field FROM interval) 

I syntaksen ovenfor kan vi bruke år, måned, dato, time, minutter , etc., i feltparameteren.

De ekstrakt funksjonen returnerer en verdi av typen dobbel presisjon hvis vi ønsker å trekke ut fra intervallet.

I det følgende eksempelet vil vi bruke EKSTRAKT() funksjon for å hente den doble presisjonsverdien.

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

Produksjon

Etter å ha utført kommandoen ovenfor, vil vi få utgangen nedenfor, som viser datodel for dobbelpresisjonen verdier som vist nedenfor:

PostgreSQL-intervall

Justering av PostgreSQL-intervallverdier

Vi har to funksjoner, rettferdig_dager og rettferdig_timer i PostgreSQL, som tillater oss å endre intervall på 24 timer vurdere som en dag og intervallet på 30 dager vurdere som en måned .

La oss se et eksempel for å forstå hvordan vi justerer PostgreSQL-intervallverdiene:

I den følgende kommandoen vil vi bruke funksjonen justify_days og justify_hours:

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

Produksjon

Etter å ha utført kommandoen ovenfor, vil vi få følgende resultat, som viser intervallet til 30 dager som en måned og intervall på 24 timer som en dag :

PostgreSQL-intervall

I tillegg til det begrunn_intervall funksjon regulerer intervallverdiene ved hjelp av rettferdig_dager og rettferdig_timer med ekstra tegnmodifikasjoner:

I følgende eksempel vil vi bruke justifiy_interval-funksjonen med SELECT-kommandoen:

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

Produksjon

Vi vil få følgende utgang etter å ha implementert kommandoen ovenfor:

PostgreSQL-intervall

Oversikt

I PostgreSQL Interval datatype seksjonen, har vi lært følgende emner:

  • De PostgreSQL-intervalldata type brukes til å lagre og distribuere en periode i år, måneder, dager, timer, minutter, sekunder.
  • Vi brukte forskjellige Intervallfunksjoner , for eksempel, NÅ(), TO_CHAR(), for å forbedre intervallverdier fra den aktuelle tabellen.
  • PostgreSQL-intervallverdiene har begge deler input og output intervallformat.
  • Vi kan justere PostgreSQL-intervallverdiene ved hjelp av justify_days(), justify_hours, justify_interval() funksjoner.
  • Vi kan bruke EKSTRAKT() funksjon for å trekke ut intervallfeltverdiene.