logo

Interval PostgreSQL

În această secțiune, vom înțelege funcționarea Tip de date PostgreSQL Interval, si vedem si noi exemple al Tip de date interval. Și cel mai adesea folosit Interval funcții , de exemplu, NOW(), TO_CHAR(), EXTRACT(), justify_days(), justify_hours(), justify_interval(). The Intrare și ieșire format pentru valorile intervalului PostgreSQL.

Ce este tipul de date cu intervale PostgreSQL?

În PostgreSQL, Interval este un alt tip de tip de date folosit pentru stocarea și implementarea Time in ani, luni, zile, ore, minute, secunde, etc. Și cel luni si zile valorile sunt valori întregi , întrucât câmpul secundului poate fi valorile fracțiilor.

Valoarea tipului de date interval PostgreSQL implică 16 octeți de stocare dimensiune, care ajută la stocarea unei perioade cu intervalul acceptabil de la - 178000000 de ani până la 178000000 ani.

unix vs windows

Notă: numărul de cifre ale fracțiunilor luate în al doilea câmp este cunoscut sub numele de precizie p.

Sintaxa tipului de date PostgreSQL Interval

Sintaxa tipului de date PostgreSQL Interval este următoarea:

 @ interval [ fields ] [ (p) ] 

În sintaxa de mai sus, avem următorii parametri:

Parametru Descriere
câmpuri Parametrul de câmp este utilizat pentru a afișa Ora.
p P este folosit pentru a afișa valoarea de precizie.
@ Putem ignora parametrul @ deoarece este un parametru opțional.

Să vedem un exemplu de exemplu pentru a înțelege mai bine cum putem scrie valorile Interval cu parametrul @ și fără parametrul @ :

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

SAU

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

Notă: putem folosi ambele afirmații de mai sus, deoarece corespund reciproc. În plus, o valoare de interval poate avea o valoare de precizie electivă p cu intervalul permis este pornit de la 0 la 6.

Exemplu de tip de date PostgreSQL Interval

Să vedem un exemplu de exemple pentru a înțelege cum Tip de date PostgreSQL Interval lucrări.

În exemplul de mai jos, vom încerca să găsim ora de cu 2 ore și 30 de minute înainte, la ora curentă a anului trecut ; vom folosi următoarele comenzi:

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

Ieșire

După executarea comenzii de mai sus, vom obține rezultatul de mai jos, care se afișează Cu 2 ore și 30 de minute înainte de anul trecut :

Interval PostgreSQL

Am văzut exemplul principal de tip de date interval și am înțeles funcționarea acestuia. Acum, vom vedea formatul de intrare și de ieșire al valorile intervalului.

În primul rând, vom înțelege Valoarea intervalului PostgreSQL pentru formatul de intrare :

Format de intrare cu intervale PostgreSQL

În PostgreSQL, avem următoarele sintaxa verbosa, care ne ajută să scriem valorile intervalului:

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

Avem parametrii de mai jos, care sunt utilizați în sintaxa de mai sus:

Parametru Descriere
cantitate A cantitate este un număr, care acceptă și semne precum + sau -
unitate The unitate poate fi oricare mileniu, secol, deceniu, an, lună, săptămână, zi, oră, minut, secundă, milisecundă, microsecundă, sau abrevierea poate fi următoarea y, m, d etc. iar formele de plural pot fi luni, zile , etc.
direcţie The direcţie parametrul poate fi acum sau șirul gol.

Notă: Sintaxa de mai sus este folosită și pentru formatul de ieșire pe interval și este cunoscută sub numele de postgres_verbose.

În exemplul de mai jos, vom afișa câteva valori de interval în care vom folosi sintaxă verbosă :

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

Formatul de interval ISO 8601

Pe lângă sintaxa de mai sus, pentru a scrie valorile intervalului cu ajutorul lui ISO 8601-time intervale, PostgreSQL ne oferă cele două moduri, care sunt după cum urmează:

    Formatul indicatorilor Format alternativ

Formatul indicatorilor pentru ISO 8601 este următorul:

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

În formatul de mai sus, valoarea esențială a intervalului începe cu litera P , si litera T este folosit pentru a defini unitate de timp al zilei .

Tabelul de mai jos afișează Interval ISO 8601 abrevieri de unitate:

Abreviere Descriere
ȘI Ani
M Luni (pentru partea dată)
ÎN Săptămâni
D Zile
H Ore
M Minute (pentru partea de timp)
S secunde

Notă: M poate fi luni sau minute, în funcție de faptul că arată înainte sau după litera T.

Să vedem un exemplu de desemnatori ISO 8601 format pentru o mai bună înțelegere a noastră:

The Formatul indicatorilor ISO 8601 poate fi scris pentru intervalul de 5 ani 4 luni 3 zile 2 ore 1 minute 1 secundă :

 P5Y4M3DT2H1M1S 

Și forma alternativă a ISO 8601 este așa cum se arată mai jos:

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

Și, de asemenea, începe cu litera P și litera T, care desparte data si ora părți ale valorii intervalului.

De exemplu, cel Forma alternativă ISO 8601 poate fi scris pentru 5 ani 4 luni 3 zile 2 ore 1 minut 1 secundă, așa cum se arată mai jos:

 P0005-04-03T02:01:01 

Format de ieșire cu intervale PostgreSQL

Formatul de ieșire a intervalului PostgreSQL al valorilor intervalului poate fi setat cu ajutorul A STABILIT stil interval comandă, așa cum putem vedea în exemplul de mai jos:

 SET intervalstyle = 'iso_8601'; 

PostgreSQL conține patru formate de ieșire diferite, cum ar fi:

    iso_8601 postgres_verbose Postgres standard sql

Notă: Pentru a formata valorile intervalului, PostgreSQL utilizează implicit stilul Postgres.

Să vedem un exemplu de mai bună înțelegere a noastră:

Comanda de mai jos este folosită pentru a afișa 5 ani 4 luni 3 zile 2 ore 1 minut 1 secunda în cele patru formate diferite de ieșire:

Pentru formatul de ieșire ISO_8601

În comanda de mai jos, vom face A STABILIT cel stil interval la fel de iso_8601 pentru valoarea intervalului menționată mai sus:

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

Ieșire

După executarea comenzii de mai sus, vom obține rezultatul de mai jos, care reprezintă iso_8601 format interval de ieșire:

Interval PostgreSQL

Pentru formatul de ieșire postgres_verbose

În comanda de mai jos, vom face A STABILIT cel stil interval la fel de postgres_verbose pentru valoarea intervalului menționată mai sus:

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

Ieșire

Vom obține rezultatul de mai jos după implementarea comenzii de mai sus, care arată postgres_verbose format interval de ieșire:

plsql
Interval PostgreSQL

Pentru formatul de ieșire Postgres

În comanda de mai jos, vom face A STABILIT cel stil interval la fel de Postgres pentru valoarea intervalului menționată mai sus:

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

Ieșire

Vom obține rezultatul de mai jos după executarea cu succes a comenzii de mai sus, care arată Postgres format interval de ieșire:

Interval PostgreSQL

Pentru formatul de ieșire Sql_standard

În comanda de mai jos, vom face A STABILIT cel stil interval la fel de sql_standard pentru valoarea intervalului menționată mai sus:

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

Ieșire

Vom obține rezultatul de mai jos după executarea cu succes a comenzii de mai sus, care reprezintă sql_standard format interval de ieșire:

Interval PostgreSQL

Modificarea intervalului PostgreSQL în șir

Putem folosi TO_CHAR() funcție pentru a modifica o valoare de interval într-un șir.

Sintaxa pentru modificarea intervalului PostgreSQL în șir

 TO_CHAR(interval,format) 

The Funcția TO_CHAR(). ia prima afirmatie la fel de o valoare de interval si altul ca format și preia un șir, afișând intervalul în formatul particular.

În exemplul de mai jos, vom folosi funcția TO_CHAR(), care convertește intervalul PostgreSQL în valoarea șirului:

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

Ieșire

După executarea cu succes a comenzii de mai sus, vom obține rezultatul de mai jos:

Interval PostgreSQL

Operatori și funcții legate de intervale PostgreSQL

Operatori de interval

Putem folosi următoarele +, -, *, etc. operator aritmetic pentru a obține valorile intervalului.

Să vedem exemplul de mai jos pentru a înțelege mai bine:

În următoarea comandă, vom folosi operator aritmetic (+) cu ajutorul tipului de date interval PostgreSQL:

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

Ieșire

Vom obține rezultatul de mai jos la implementarea comenzii de mai sus, așa cum se arată mai jos:

graficul de alocare a resurselor
Interval PostgreSQL

În următoarea comandă, vom folosi operator aritmetic (-) cu ajutorul tipului de date interval PostgreSQL:

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

Ieșire

La implementarea comenzii de mai sus, vom obține rezultatul de mai jos:

Interval PostgreSQL

În următoarea comandă, vom folosi operator aritmetic (*) cu ajutorul tipului de date interval PostgreSQL:

 SELECT 400 * INTERVAL '5 minute'; 

Ieșire

La implementarea comenzii de mai sus, vom obține rezultatul de mai jos:

Interval PostgreSQL

Extragerea datelor dintr-un interval PostgreSQL

Putem folosi EXTRAGE() funcție pentru a extrage câmpurile dintr-o valoare de interval, De exemplu, an, luna, data etc .

Sintaxa pentru extragerea datelor dintr-un interval PostgreSQL

 EXTRACT(field FROM interval) 

În sintaxa de mai sus, putem folosi an, luna, data, ora, minutele , etc., în parametrul câmp.

The extrage function returneaza o valoare de tip double-precision daca dorim sa extragem din interval.

În exemplul următor, vom folosi EXTRAGE() funcția pentru a prelua valoarea de dublă precizie.

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

Ieșire

După executarea cu succes a comenzii de mai sus, vom obține rezultatul de mai jos, care afișează parte data pentru dubla precizie valorile prezentate mai jos:

Interval PostgreSQL

Ajustarea valorilor intervalului PostgreSQL

Avem două funcții, justify_days și justify_hours în PostgreSQL, care ne permite să modificăm interval de 24 de ore considerat ca într-o zi iar intervalul de 30 de zile considerat ca o luna .

Să vedem un exemplu pentru a înțelege cum ajustăm valorile intervalului PostgreSQL:

În următoarea comandă, vom folosi Funcția justify_days și justify_hours:

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

Ieșire

După executarea comenzii de mai sus, vom obține următorul rezultat, care afișează intervalul de 30 de zile ca o lună si interval de 24 de ore ca o zi :

Interval PostgreSQL

Pe lângă asta, justify_interval funcția reglează valorile intervalului cu ajutorul lui justify_days și justify_hours cu modificări suplimentare de semn:

În următorul exemplu, vom folosi funcția justifiy_interval cu comanda SELECT:

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

Ieșire

Vom obține următorul rezultat după implementarea comenzii de mai sus:

Interval PostgreSQL

Prezentare generală

În Tip de date PostgreSQL Interval secțiunea, am învățat următoarele subiecte:

  • The Date de interval PostgreSQL tip este folosit pentru a stoca și a implementa o perioadă în ani, luni, zile, ore, minute, secunde.
  • Am folosit diferit Funcții de interval , de exemplu, ACUM(), TO_CHAR(), pentru a îmbunătăți valorile intervalului din tabelul specific.
  • Valorile intervalului PostgreSQL au ambele intrare și ieșire format de interval.
  • Putem ajusta valorile intervalului PostgreSQL cu ajutorul Funcțiile justify_days(), justify_hours, justify_interval().
  • Putem folosi EXTRAGE() funcția de extragere a valorilor câmpului de interval.