logo

PostgreSQL-intervall

I det här avsnittet kommer vi att förstå hur det fungerar PostgreSQL Interval datatyp, och vi ser också exempel av Intervalldatatyp. Och används mest Interval funktioner , till exempel, NOW(), TO_CHAR(), EXTRACT(), justify_days(), justify_hours(), justify_interval(). De Ingång och utgång format för PostgreSQL-intervallvärden.

Vad är PostgreSQL Interval Data Type?

I PostgreSQL, den Intervall är en annan typ av datatyp som används för att lagra och distribuera tid i år, månader, dagar, timmar, minuter, sekunder, etc. Och månader och dagar värden är heltalsvärden , medan andras fält kan vara bråkvärden.

PostgreSQL intervall datatyp värde involverar 16 byte lagring storlek, vilket hjälper till att lagra en period med det acceptabla intervallet från - 178000000 år till 178000000 år.

skillnaden mellan ett lejon och en tiger

Obs! Antalet bråksiffror som tas i det andra fältet kallas precisionsp.

Syntax för PostgreSQL Interval datatyp

Syntaxen för PostgreSQL-intervalldatatypen är som följer:

 @ interval [ fields ] [ (p) ] 

I ovanstående syntax har vi följande parametrar:

Parameter Beskrivning
fält Fältparametern används för att visa tiden.
sid P används för att visa precisionsvärde.
@ Vi kan ignorera @-parametern eftersom det är en valfri parameter.

Låt oss se ett exempel för att bättre förstå hur vi kan skriva intervallvärdena med @ parameter och utan @ parameter :

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

ELLER

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

Notera: Vi kan använda båda ovanstående påståenden eftersom de motsvarar varandra. Dessutom kan ett intervallvärde ha ett valbart precisionsvärde p med det tillåtna intervallet startat från 0 till 6.

Exempel på PostgreSQL Interval datatyp

Låt oss se ett exempel för att förstå hur PostgreSQL Interval datatyp Arbetar.

I exemplet nedan kommer vi att försöka hitta tiden för 2 timmar 30 minuter innan, vid nuvarande tid förra året ; vi kommer att använda följande kommandon:

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

Produktion

Efter att ha utfört kommandot ovan kommer vi att få utdata nedan, som visas 2 timmar 30 minuter före förra året :

PostgreSQL-intervall

Vi har sett det primära exemplet på intervalldatatyp och förstår hur det fungerar. Nu kommer vi att se ingångs- och utdataformatet för intervallvärden.

För det första kommer vi att förstå PostgreSQL-intervallvärde för inmatningsformatet :

PostgreSQL Interval Input Format

I PostgreSQL har vi följande utförlig syntax, som hjälper oss att skriva intervallvärdena:

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

Vi har nedanstående parametrar, som används i ovanstående syntax:

Parameter Beskrivning
kvantitet A kvantitet är ett tal, som också accepterar tecken som + eller -
enhet De enhet kan vara vilken som helst årtusende, århundrade, decennium, år, månad, vecka, dag, timme, minut, sekund, millisekund, mikrosekund, eller förkortning kan vara följande y, m, d osv. och pluralformerna kan vara månader, dagar , etc.
riktning De riktning parameter kan vara sedan eller den tomma strängen.

Obs: Syntaxen ovan används också för intervallutdataformatet och kallas postgres_verbose.

I exemplet nedan kommer vi att visa några intervallvärden där vi använder utförlig syntax :

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

Intervallformatet ISO 8601

Förutom den utförliga syntaxen ovan, att skriva intervallvärdena med hjälp av ISO 8601-tid intervaller ger PostgreSQL oss de två sätten, som är följande:

    Designators format Alternativt format

Designatorformatet för ISO 8601 är följande:

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

I ovanstående format börjar det väsentliga intervallvärdet med bokstaven P , och den bokstaven T används för att definiera tidsenhet .

Tabellen nedan visar ISO 8601 intervall enhetsförkortningar:

Förkortning Beskrivning
OCH år
M Månader (för datumdelen)
I Veckor
D dagar
H Timmar
M Minuter (för tidsdelen)
S Sekunder

Notera: M kan vara månader eller minuter baserat på om det ser ut före eller efter bokstaven T.

Låt oss se ett exempel på ISO 8601 beteckningar format för bättre förståelse:

De ISO 8601 designatorformat kan skrivas för intervallet av 5 år 4 månader 3 dagar 2 timmar 1 minuter 1 sekund :

 P5Y4M3DT2H1M1S 

Och den alternativa formen av ISO 8601 är som visas nedan:

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

Och det börjar också med bokstaven P och bokstaven T, som delar upp tid och datum delar av intervallvärdet.

Till exempel ISO 8601 alternativ form kan skrivas för 5 år 4 månader 3 dagar 2 timmar 1 minut 1 sekund, enligt nedanstående:

 P0005-04-03T02:01:01 

PostgreSQL Interval Output Format

PostgreSQL-intervallutmatningsformatet för intervallvärden kan ställas in med hjälp av UPPSÄTTNING intervallstil kommando, som vi kan se i exemplet nedan:

 SET intervalstyle = 'iso_8601'; 

PostgreSQL innehåller fyra olika utdataformat, till exempel:

    iso_8601 postgres_verbose Postgres sql standard

Obs: För att formatera intervallvärdena använder PostgreSQL Postgres-stilen som standard.

Låt oss se ett exempel på vår bättre förståelse:

Kommandot nedan används för att visa 5 år 4 månader 3 dagar 2 timmar 1 minut 1 sekund i de fyra olika utdataformaten:

För ISO_8601 utdataformat

I kommandot nedan kommer vi att göra det UPPSÄTTNING de intervallstil som iso_8601 för ovan nämnda intervallvärde:

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

Produktion

Efter att ha utfört kommandot ovan kommer vi att få resultatet nedan, som representerar iso_8601 intervallutgångsformat:

PostgreSQL-intervall

För postgres_verbose utdataformat

I kommandot nedan kommer vi att göra det UPPSÄTTNING de intervallstil som postgres_verbose för ovan nämnda intervallvärde:

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

Produktion

Vi kommer att få resultatet nedan efter att ha implementerat kommandot ovan, som visar postgres_verbose intervallutgångsformat:

Hur man laddar ner YouTube-videor vlc
PostgreSQL-intervall

För Postgres utdataformat

I kommandot nedan kommer vi att göra det UPPSÄTTNING de intervallstil som Postgres för ovan nämnda intervallvärde:

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

Produktion

Vi kommer att få resultatet nedan efter att ha utfört kommandot ovan, som visar Postgres intervallutgångsformat:

PostgreSQL-intervall

För SQL_standard utdataformat

I kommandot nedan kommer vi att göra det UPPSÄTTNING de intervallstil som sql_standard för ovan nämnda intervallvärde:

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

Produktion

Vi kommer att få resultatet nedan efter att ha utfört kommandot ovan, som representerar sql_standard intervallutgångsformat:

PostgreSQL-intervall

Ändra PostgreSQL-intervallet till sträng

Vi kan använda TO_CHAR() funktion för att ändra ett intervallvärde till en sträng.

Syntaxen för att ändra PostgreSQL-intervallet till sträng

 TO_CHAR(interval,format) 

De TO_CHAR() funktion tar första uttalandet som ett intervallvärde och en annan som formatera och hämtar en sträng som visar intervallet i det specifika formatet.

I exemplet nedan kommer vi att använda TO_CHAR()-funktionen, som konverterar PostgreSQL-intervallet till strängvärdet:

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

Produktion

Efter att ha utfört ovanstående kommando kommer vi att få följande resultat:

PostgreSQL-intervall

PostgreSQL-intervallrelaterade operatörer och funktioner

Intervalloperatorer

Vi kan använda följande +, -, *, etc. aritmetisk operator för att få intervallvärdena.

Låt oss se exemplet nedan för bättre förståelse:

I följande kommando kommer vi att använda aritmetisk operator (+) med hjälp av PostgreSQL-intervalldatatyp:

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

Produktion

Vi kommer att få resultatet nedan när vi implementerar kommandot ovan, som visas nedan:

PostgreSQL-intervall

I följande kommando kommer vi att använda aritmetisk operator (-) med hjälp av PostgreSQL intervalldatatyp:

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

Produktion

När vi implementerar ovanstående kommando kommer vi att få följande resultat:

PostgreSQL-intervall

I följande kommando kommer vi att använda aritmetisk operator (*) med hjälp av PostgreSQL intervalldatatyp:

 SELECT 400 * INTERVAL '5 minute'; 

Produktion

När vi implementerar ovanstående kommando kommer vi att få följande resultat:

PostgreSQL-intervall

Extrahera data från ett PostgreSQL-intervall

Vi kan använda EXTRAHERA() funktion för att extrahera fälten från ett intervallvärde, t.ex. år, månad, datum osv .

Syntaxen för att extrahera data från ett PostgreSQL-intervall

 EXTRACT(field FROM interval) 

I ovanstående syntax kan vi använda år, månad, datum, timme, minuter , etc., i fältparametern.

De extrahera funktion returnerar ett värde av typen dubbelprecision om vi vill extrahera från intervallet.

I följande exempel kommer vi att använda EXTRAHERA() funktion för att hämta dubbelprecisionsvärdet.

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

Produktion

Efter att ha utfört kommandot ovan kommer vi att få utdata nedan, som visar datumdel för dubbelprecisionen värden som visas nedan:

PostgreSQL-intervall

Justera PostgreSQL-intervallvärden

Vi har två funktioner, motivera_dagar och motivera_timmar i PostgreSQL, som tillåter oss att ändra intervall på 24 timmar anses vara en dag och intervallet för 30 dagar anses vara en månad .

Skådespelerskan Rakul Preet Singh

Låt oss se ett exempel för att förstå hur vi justerar PostgreSQL-intervallvärdena:

I följande kommando kommer vi att använda funktion justify_days och justify_hours:

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

Produktion

Efter att ha utfört kommandot ovan kommer vi att få följande resultat, som visar intervallet för 30 dagar som en månad och den intervall på 24 timmar som en dag :

PostgreSQL-intervall

Förutom det, den motivera_intervall funktion reglerar intervallvärdena med hjälp av motivera_dagar och motivera_timmar med tillagda teckenändringar:

I följande exempel kommer vi att använda funktionen justifiy_interval med kommandot SELECT:

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

Produktion

Vi kommer att få följande utdata efter att ha implementerat kommandot ovan:

PostgreSQL-intervall

Översikt

I den PostgreSQL Interval datatyp avsnitt har vi lärt oss följande ämnen:

  • De PostgreSQL-intervalldata typ används för att lagra och distribuera en period i år, månader, dagar, timmar, minuter, sekunder.
  • Vi använde olika Intervallfunktioner , till exempel, NU(), TO_CHAR(), för att förbättra intervallvärdena från den specifika tabellen.
  • PostgreSQL-intervallvärdena har båda ingång och utgång intervallformat.
  • Vi kan justera PostgreSQL-intervallvärdena med hjälp av funktionerna justify_days(), justify_hours, justify_interval().
  • Vi kan använda EXTRAHERA() funktion för att extrahera intervallfältsvärdena.