logo

PostgreSQL intervallum

Ebben a részben a működését fogjuk megérteni PostgreSQL intervallum adattípus, és azt is látjuk példák a Intervallum adattípus. És többnyire használt Interval funkciókat , például, NOW(), TO_CHAR(), EXTRACT(), justify_days(), justify_hours(), justify_interval(). A Bemenet és kimenet formátum a PostgreSQL intervallumértékekhez.

Mi az a PostgreSQL intervallum adattípus?

A PostgreSQL-ben a Intervallum egy másik típusú adattípus, amelyet az Idő tárolására és telepítésére használnak évek, hónapok, napok, órák, percek, másodpercek, stb És a hónapok és napok értékek azok egész számok értékeit , míg a második mezőny lehet a törtértékek.

A PostgreSQL intervallum adattípus értéke magában foglalja 16 bájtos tárhely méret, amely segít egy időszak tárolását az elfogadható tartományban - 178000000 évtől 178000000-ig évek.

hrithik roshan

Megjegyzés: A második mezőben vett törtszámjegyek számát p pontosságnak nevezzük.

A PostgreSQL Interval adattípus szintaxisa

A PostgreSQL Interval adattípus szintaxisa a következő:

 @ interval [ fields ] [ (p) ] 

A fenti szintaxisban a következő paramétereink vannak:

Paraméter Leírás
mezőket A mezőparaméter az Idő megjelenítésére szolgál.
p P a precíziós érték megjelenítésére szolgál.
@ Figyelmen kívül hagyhatjuk a @ paramétert, mivel az opcionális paraméter.

Nézzünk egy példát, hogy jobban megértsük, hogyan írhatjuk fel az Intervallum értékeket val vel @ paraméter és @ paraméter nélkül :

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

VAGY

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

Megjegyzés: Mindkét fenti állítást használhatjuk, mivel megfelelnek egymásnak. Ezen túlmenően egy intervallumértéknek lehet egy választható p precíziós értéke is, ahol a megengedett tartomány 0 és 6 között kezdődik.

Példa PostgreSQL Interval adattípusra

Nézzünk egy példát, hogy megértsük, hogyan PostgreSQL intervallum adattípus művek.

Az alábbi példában megpróbáljuk megtalálni az időpontot 2 óra 30 perccel előtte, a a tavalyi év aktuális időpontja ; a következő parancsokat fogjuk használni:

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

Kimenet

A fenti parancs végrehajtása után az alábbi kimenetet kapjuk, amely megjelenik 2 óra 30 perccel tavaly előtt :

PostgreSQL intervallum

Láttuk az intervallum adattípusának elsődleges példáját, és megértettük a működését. Most látni fogjuk a bemeneti és kimeneti formátumot intervallum értékek.

Először is meg fogjuk érteni a PostgreSQL intervallumérték a bemeneti formátumhoz :

PostgreSQL intervallum beviteli formátum

A PostgreSQL-ben a következők vannak bőbeszédű szintaxis, ami segít felírni az intervallumértékeket:

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

Az alábbi paraméterekkel rendelkezünk, amelyeket a fenti szintaxisban használunk:

Paraméter Leírás
Mennyiség A Mennyiség egy szám, amely olyan jeleket is elfogad, mint a + vagy -
Mértékegység A Mértékegység bármilyen lehet évezred, évszázad, évtized, év, hónap, hét, nap, óra, perc, másodperc, ezredmásodperc, mikroszekundum, vagy rövidítése a következő lehet y, m, d stb. és a többes számú alakok lehetnek a hónapok, napok stb.
irány A irány paraméter lehet ezelőtt vagy az üres karakterlánc.

Megjegyzés: A fenti szintaxis az intervallum kimeneti formátumhoz is használatos, és postgres_verbose néven ismert.

Az alábbi példában néhány intervallumértéket fogunk megjeleníteni, ahol a bőbeszédű szintaxis :

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

Az ISO 8601 intervallum formátum

A fenti bőbeszédű szintaxis mellett az intervallumértékek megírása a segítségével ISO 8601-idő intervallumok esetén a PostgreSQL két módszert biztosít számunkra, amelyek a következők:

    Jelölők formátuma Alternatív formátum

Az ISO 8601 jelölési formátuma a következő:

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

A fenti formátumban az esszenciális intervallumérték a -val kezdődik P betű , és a T betű meghatározására szolgál napszaki egység .

Az alábbi táblázat a ISO 8601 intervallum egység rövidítések:

Rövidítés Leírás
ÉS Évek
M Hónapok (a dátum részhez)
BAN BEN Hetek
D Napok
H Órák
M Percek (az időre vonatkozóan)
S Másodpercek

Megjegyzés: Az M lehet hónapok vagy percek attól függően, hogy a T betű előtt vagy után néz-e ki.

Lássunk egy példát ISO 8601 jelölések formátum a jobb megértés érdekében:

A ISO 8601 jelölőformátum intervallumára írható 5 éve 4 hónapja 3 napja 2 óra 1 perce 1 másodperce :

 P5Y4M3DT2H1M1S 

És az alternatív formája ISO 8601 az alábbiak szerint van:

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

És azzal is kezdődik P betű és T betű, amely felosztja a idő és dátum az intervallum értékének részei.

Például a ISO 8601 alternatív forma számára írható 5 év 4 hónap 3 nap 2 óra 1 perc 1 másodperc, az alábbiak szerint:

 P0005-04-03T02:01:01 

PostgreSQL intervallum kimeneti formátum

Az intervallumértékek PostgreSQL intervallum kimeneti formátuma a segítségével állítható be KÉSZLET intervalstílus parancsot, ahogy az alábbi példában is láthatjuk:

 SET intervalstyle = 'iso_8601'; 

A PostgreSQL négy különböző kimeneti formátumot tartalmaz, például:

    iso_8601 postgres_verbose Postgres sql szabvány

Megjegyzés: Az intervallumértékek formázásához a PostgreSQL alapértelmezés szerint a Postgres stílust használja.

Lássunk egy példát jobb megértésünkre:

Az alábbi parancs a 5 éve 4 hónapja 3 napja 2 óra 1 perce 1 másodperce négy különböző kimeneti formátumban:

ISO_8601 kimeneti formátumhoz

Az alábbi parancsban megtesszük KÉSZLET a intervalstílus mint iso_8601 a fent említett intervallumértékhez:

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

Kimenet

A fenti parancs végrehajtása után az alábbi eredményt kapjuk, amely a iso_8601 intervallum kimeneti formátum:

PostgreSQL intervallum

Postgres_verbose kimeneti formátumhoz

Az alábbi parancsban megtesszük KÉSZLET a intervalstílus mint postgres_verbose a fent említett intervallumértékhez:

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

Kimenet

A fenti parancs végrehajtása után az alábbi eredményt kapjuk, amely a postgres_verbose intervallum kimeneti formátum:

Hogyan lehet letölteni a youtube videókat vlc-ről
PostgreSQL intervallum

Postgres kimeneti formátumhoz

Az alábbi parancsban megtesszük KÉSZLET a intervalstílus mint Postgres a fent említett intervallumértékhez:

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

Kimenet

A fenti parancs sikeres végrehajtása után az alábbi eredményt kapjuk, amely a Postgres intervallum kimeneti formátum:

PostgreSQL intervallum

Sql_standard kimeneti formátumhoz

Az alábbi parancsban megtesszük KÉSZLET a intervalstílus mint sql_standard a fent említett intervallumértékhez:

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

Kimenet

Az alábbi eredményt kapjuk a fenti parancs sikeres végrehajtása után, amely a sql_standard intervallum kimeneti formátum:

PostgreSQL intervallum

A PostgreSQL intervallum módosítása karakterláncra

Használhatjuk a TO_CHAR() függvény egy intervallumértéket karakterláncra módosítani.

A PostgreSQL intervallum karakterláncra való módosításának szintaxisa

 TO_CHAR(interval,format) 

A TO_CHAR() függvény veszi a első kijelentés mint egy intervallum értéket és egy másik, mint a formátum és lekér egy karakterláncot, megjelenítve az intervallumot az adott formátumban.

Az alábbi példában a TO_CHAR() függvényt fogjuk használni, amely a PostgreSQL intervallumot karakterlánc értékké alakítja:

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

Kimenet

A fenti parancs sikeres végrehajtása után az alábbi eredményt kapjuk:

PostgreSQL intervallum

PostgreSQL intervallumhoz kapcsolódó operátorok és függvények

Intervallum operátorok

A következőket használhatjuk +, -, * stb. aritmetikai operátor hogy megkapjuk az intervallumértékeket.

Nézzük az alábbi példát a jobb megértés érdekében:

A következő parancsban a aritmetikai operátor (+) PostgreSQL intervallum adattípus segítségével:

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

Kimenet

Az alábbi eredményt kapjuk a fenti parancs végrehajtása során, az alábbiak szerint:

PostgreSQL intervallum

A következő parancsban a aritmetikai operátor (-) PostgreSQL intervallum adattípus segítségével:

mi az a klaszterezés
 SELECT INTERVAL '3h 50m' - INTERVAL '30m'; 

Kimenet

A fenti parancs végrehajtásakor az alábbi eredményt kapjuk:

PostgreSQL intervallum

A következő parancsban a aritmetikai operátor (*) PostgreSQL intervallum adattípus segítségével:

 SELECT 400 * INTERVAL '5 minute'; 

Kimenet

A fenti parancs végrehajtásakor az alábbi eredményt kapjuk:

PostgreSQL intervallum

Adatok kinyerése egy PostgreSQL intervallumból

Használhatjuk a KIVONAT() függvény a mezők kinyeréséhez egy intervallumértékből, például év, hónap, dátum stb .

A PostgreSQL-intervallumból való adatok kinyerésének szintaxisa

 EXTRACT(field FROM interval) 

A fenti szintaxisban használhatjuk a év, hónap, dátum, óra, perc stb., a mezőparaméterben.

A kivonat függvény dupla pontosságú típusú értéket ad vissza, ha ki akarunk kinyerni az intervallumból.

A következő példában a KIVONAT() függvény a dupla pontosságú érték lekéréséhez.

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

Kimenet

A fenti parancs sikeres végrehajtása után az alábbi kimenetet kapjuk, amely megjeleníti a dátum rész a kettős pontossághoz értékek az alábbiak szerint:

PostgreSQL intervallum

PostgreSQL intervallumértékek beállítása

Két funkciónk van, indokolt_napok és indokolt_órák PostgreSQL-ben, amely lehetővé teszi számunkra, hogy módosítsuk a 24 órás intervallum tekintsd mint egy nap és az intervallum 30 napos tekintsd mint egy hónap .

Lássunk egy példát, hogy megértsük, hogyan állítjuk be a PostgreSQL intervallumértékeit:

A következő parancsban a justify_days és justify_hours függvény:

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

Kimenet

A fenti parancs végrehajtása után a következő eredményt kapjuk, amely az intervallumot jeleníti meg 30 nap, mint egy hónap és a 24 órás intervallum, mint egy nap :

PostgreSQL intervallum

Ezen kívül a justify_interval függvény segítségével szabályozza az intervallum értékeket indokolt_napok és indokolt_órák kiegészített jelzésmódosításokkal:

A következő példában a justifiy_interval függvényt fogjuk használni a SELECT paranccsal:

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

Kimenet

A fenti parancs végrehajtása után a következő kimenetet kapjuk:

PostgreSQL intervallum

Áttekintés

Ban,-ben PostgreSQL intervallum adattípus részben a következő témákat tanultuk meg:

  • A PostgreSQL intervallumadatok A típus egy időszak tárolására és telepítésére szolgál évek, hónapok, napok, órák, percek, másodpercek.
  • Mást használtunk Intervallumfüggvények , például, MOST(), TO_CHAR(), az adott tábla intervallumértékeinek növelésére.
  • A PostgreSQL intervallumértékei mindkettőt tartalmazzák bemenet és kimenet intervallum formátum.
  • A PostgreSQL intervallum értékeit a segítségével tudjuk beállítani justify_days(), justify_hours, justify_interval() függvények.
  • Használhatjuk a KIVONAT() függvényt az intervallum mező értékeinek kinyeréséhez.