Î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 :
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 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:
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:
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
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:
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:
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:
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
Î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:
Î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:
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:
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 :
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:
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.