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 :
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:
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:
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:
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
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:
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:
Ä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-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:
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:
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:
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:
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 :
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:
Ö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.