Šajā sadaļā mēs sapratīsim, kā darbojas PostgreSQL intervāla datu tips, un mēs arī redzam piemēri no Intervāla datu tips. Un galvenokārt izmanto Interval funkcijas , piemēram, NOW(), TO_CHAR(), EXTRACT(), justify_days(), justify_hours(), justify_interval(). The Ievade un izvade formāts PostgreSQL intervāla vērtībām.
Kas ir PostgreSQL intervāla datu tips?
Programmā PostgreSQL, Intervāls ir cita veida datu tips, ko izmanto laika glabāšanai un izvietošanai gadi, mēneši, dienas, stundas, minūtes, sekundes, utt. Un mēneši un dienas vērtības ir veselu skaitļu vērtības , savukārt otrā lauks var būt daļskaitļu vērtības.
PostgreSQL intervāla datu tipa vērtība ietver 16 baitu krātuve izmērs, kas palīdz saglabāt periodu ar pieņemamu diapazonu no - 178000000 gadu līdz 178000000 gadiem.
mockito jebkurā laikā
Piezīme. Otrajā laukā uzņemto daļskaitļu skaitu sauc par precizitāti p.
PostgreSQL intervāla datu tipa sintakse
PostgreSQL intervāla datu tipa sintakse ir šāda:
@ interval [ fields ] [ (p) ]
Iepriekš minētajā sintaksē mums ir šādi parametri:
Parametrs | Apraksts |
---|---|
lauki | Lauka parametrs tiek izmantots, lai parādītu laiku. |
lpp | P tiek izmantots, lai parādītu precizitātes vērtību. |
@ | Mēs varam ignorēt @ parametru, jo tas ir neobligāts parametrs. |
Apskatīsim piemēru, lai labāk izprastu, kā mēs varam rakstīt intervāla vērtības ar @ parametrs un bez @ parametra :
@interval '6 months before'; @interval '2 hours 30 minutes';
VAI
interval '6 months before'; interval '2 hours 30 minutes';
Piezīme. Mēs varam izmantot abus iepriekš minētos apgalvojumus, jo tie atbilst viens otram. Turklāt intervāla vērtībai var būt izvēles precizitātes vērtība p ar atļauto diapazonu no 0 līdz 6.
PostgreSQL intervāla datu tipa piemērs
Apskatīsim vienu piemēru piemērus, lai saprastu, kā PostgreSQL intervāla datu tips darbojas.
Zemāk esošajā piemērā mēs mēģināsim atrast laiku 2 stundas 30 minūtes iepriekš, pie pašreizējais pagājušā gada laiks ; mēs izmantosim šādas komandas:
SELECT now(), now() - INTERVAL '6 months 2 hours 30 minutes' AS '2 hours 30 minutes before last year';
Izvade
Pēc iepriekš minētās komandas izpildes mēs saņemsim zemāk redzamo izvadi, kas tiek parādīta 2 stundas 30 minūtes pirms pagājušā gada :
Mēs esam redzējuši primāro intervālu datu tipa piemēru un izprotam tā darbību. Tagad mēs redzēsim ievades un izvades formātu intervāla vērtības.
Pirmkārt, mēs sapratīsim PostgreSQL intervāla vērtība ievades formātam :
PostgreSQL intervāla ievades formāts
Programmā PostgreSQL mums ir šāda informācija daudznozīmīga sintakse, kas palīdz mums uzrakstīt intervālu vērtības:
quantity unit [quantity unit...] [direction]
Mums ir šādi parametri, kas tiek izmantoti iepriekš minētajā sintaksē:
Parametrs | Apraksts |
---|---|
daudzums | A daudzums ir skaitlis, kas pieņem arī tādas zīmes kā + vai - |
vienība | The vienība var būt jebkura tūkstošgade, gadsimts, desmitgade, gads, mēnesis, nedēļa, diena, stunda, minūte, sekunde, milisekunde, mikrosekunde, vai saīsinājums var būt šāds y, m, d utt. un daudzskaitļa formas var būt mēneši, dienas utt. |
virziens | The virziens parametrs var būt pirms vai tukša virkne. |
Piezīme. Iepriekš minētā sintakse tiek izmantota arī intervāla izvades formātam un pazīstama kā postgres_verbose.
Tālāk esošajā piemērā mēs parādīsim dažas intervāla vērtības, kur mēs izmantojam izteiksmīga sintakse :
INTERVAL '1 year 5 months 5 days'; INTERVAL '1 weeks ago';
ISO 8601 intervāla formāts
Papildus iepriekš norādītajai detalizētajai sintaksei, lai rakstītu intervālu vērtības, izmantojot ISO 8601 laiks intervālos, PostgreSQL mums nodrošina divus veidus, kas ir šādi:
ISO 8601 apzīmējumu formāts ir šāds:
P quantity unit [ quantity unit ...] [ T [ quantity unit ...]]
Iepriekš minētajā formātā intervāla vērtība būtiska sākas ar burts P , un burts T tiek izmantots, lai definētu diennakts laika vienība .
Zemāk esošajā tabulā ir parādīts ISO 8601 intervāls vienību saīsinājumi:
Abreviatūra | Apraksts |
---|---|
UN | Gadiem |
M | Mēneši (datuma daļai) |
IN | Nedēļas |
D | Dienas |
H | Stundas |
M | Minūtes (laika daļai) |
S | Sekundes |
Piezīme: M var būt mēneši vai minūtes atkarībā no tā, vai tas izskatās pirms vai pēc burta T.
Apskatīsim piemēru ISO 8601 apzīmējumi formāts mūsu labākai izpratnei:
The ISO 8601 apzīmējumu formāts var rakstīt intervālam no 5 gadi 4 mēneši 3 dienas 2 stundas 1 minūtes 1 sekunde :
P5Y4M3DT2H1M1S
Un alternatīvā forma ISO 8601 ir kā parādīts zemāk:
P [ years-months-days ] [ T hours:minutes:seconds ]
Un tas arī sākas ar burts P un burts T, kas sadala laiks un datums intervāla vērtības daļas.
Piemēram, ISO 8601 alternatīvā veidlapa var rakstīt priekš 5 gadi 4 mēneši 3 dienas 2 stundas 1 minūte 1 sekunde, kā parādīts zemāk:
P0005-04-03T02:01:01
PostgreSQL intervāla izvades formāts
Intervālu vērtību PostgreSQL intervāla izvades formātu var iestatīt, izmantojot IESTATĪT intervālstils komandu, kā mēs redzam zemāk esošajā piemērā:
SET intervalstyle = 'iso_8601';
PostgreSQL satur četrus dažādus izvades formātus, piemēram:
Piezīme. Lai formatētu intervālu vērtības, PostgreSQL pēc noklusējuma izmanto Postgres stilu.
Apskatīsim mūsu labākas izpratnes piemēru:
Tālāk norādītā komanda tiek izmantota, lai parādītu 5 gadi 4 mēneši 3 dienas 2 stundas 1 minūte 1 sekunde četros dažādos izvades formātos:
Izvades formātam ISO_8601
Zemāk esošajā komandā mēs to darīsim IESTATĪT uz intervālstils kā iso_8601 iepriekš minētajai intervāla vērtībai:
SET intervalstyle = 'iso_8601'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minute 1 second';
Izvade
Pēc iepriekš minētās komandas izpildes mēs iegūsim zemāk redzamo rezultātu, kas apzīmē iso_8601 intervāla izvades formāts:
Postgres_verbose izvades formātam
Zemāk esošajā komandā mēs to darīsim IESTATĪT uz intervālstils kā postgres_verbose iepriekšminētajai intervāla vērtībai:
SET intervalstyle = 'postgres_verbose'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Izvade
Mēs iegūsim tālāk norādīto rezultātu pēc iepriekš minētās komandas ieviešanas, kas parāda postgres_verbose intervāla izvades formāts:
nemainīgs saraksts
Postgres izvades formātam
Zemāk esošajā komandā mēs to darīsim IESTATĪT uz intervālstils kā Postgres iepriekš minētajai intervāla vērtībai:
SET intervalstyle = 'postgres'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Izvade
Mēs iegūsim tālāk norādīto rezultātu pēc veiksmīgas iepriekš minētās komandas izpildes, kas parāda Postgres intervāla izvades formāts:
Sql_standarta izvades formātam
Zemāk esošajā komandā mēs to darīsim IESTATĪT uz intervālstils kā sql_standarts iepriekš minētajai intervāla vērtībai:
SET intervalstyle = 'sql_standard'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Izvade
Mēs iegūsim tālāk norādīto rezultātu pēc veiksmīgas iepriekš minētās komandas, kas apzīmē sql_standarts intervāla izvades formāts:
PostgreSQL intervāla pārveidošana uz virkni
Mēs varam izmantot TO_CHAR() funkcija, lai pārveidotu virknes intervāla vērtību.
Sintakse PostgreSQL intervāla pārveidošanai uz virkni
TO_CHAR(interval,format)
The TO_CHAR() funkcija ņem pirmais paziņojums kā intervāla vērtība un vēl viens kā formātā un izgūst virkni, parādot intervālu konkrētajā formātā.
Tālāk esošajā piemērā mēs izmantosim funkciju TO_CHAR(), kas pārvērš PostgreSQL intervālu virknes vērtībā:
SELECT TO_CHAR( INTERVAL '15h 15m 15s','HH24:MI:SS' );
Izvade
Pēc veiksmīgas iepriekš minētās komandas izpildes mēs saņemsim šādu rezultātu:
Ar PostgreSQL intervālu saistītie operatori un funkcijas
Intervālu operatori
Mēs varam izmantot sekojošo +, -, * utt aritmētiskais operators lai iegūtu intervālu vērtības.
Apskatīsim tālāk redzamo piemēru, lai mēs labāk izprastu:
Nākamajā komandā mēs izmantosim aritmētiskais operators (+) ar PostgreSQL intervāla datu tipa palīdzību:
SELECT INTERVAL '1h 50m' + INTERVAL '5m';
Izvade
Mēs iegūsim tālāk norādīto rezultātu, ieviešot iepriekš minēto komandu, kā parādīts zemāk:
Nākamajā komandā mēs izmantosim aritmētiskais operators (-) ar PostgreSQL intervāla datu tipa palīdzību:
SELECT INTERVAL '3h 50m' - INTERVAL '30m';
Izvade
Ieviešot iepriekš minēto komandu, mēs iegūsim šādu rezultātu:
Nākamajā komandā mēs izmantosim aritmētiskais operators (*) ar PostgreSQL intervāla datu tipa palīdzību:
SELECT 400 * INTERVAL '5 minute';
Izvade
Ieviešot iepriekš minēto komandu, mēs iegūsim šādu rezultātu:
Datu izvilkšana no PostgreSQL intervāla
Mēs varam izmantot EKSTRAKTS() funkcija, lai izvilktu laukus no intervāla vērtības, piemēram, gads, mēnesis, datums utt .
Sintakse datu izvilkšanai no PostgreSQL intervāla
EXTRACT(field FROM interval)
Iepriekš minētajā sintaksē mēs varam izmantot gads, mēnesis, datums, stunda, minūtes uc, lauka parametrā.
The ekstrakts funkcija atgriež divkāršas precizitātes tipa vērtību, ja mēs vēlamies iegūt no intervāla.
Nākamajā piemērā mēs izmantosim EKSTRAKTS() funkcija, lai izgūtu dubultās precizitātes vērtību.
SELECT EXTRACT (MINUTE FROM INTERVAL '2 hours 30 minutes' );
Izvade
Pēc veiksmīgas iepriekš minētās komandas izpildes mēs iegūsim zemāk esošo izvadi, kas parāda datuma daļa dubultai precizitātei vērtības, kā parādīts zemāk:
PostgreSQL intervāla vērtību pielāgošana
Mums ir divas funkcijas, attaisnot_dienas un attaisnot_stundas PostgreSQL, kas ļauj mums modificēt 24 stundu intervāls uzskatīt par viena diena un intervāls no 30 dienu uzskatīt par viens mēnesis .
Apskatīsim piemēru, lai saprastu, kā mēs pielāgojam PostgreSQL intervāla vērtības:
Nākamajā komandā mēs izmantosim Justify_days un justify_hours funkcija:
SELECT justify_days(INTERVAL '30 days'), justify_hours(INTERVAL '24 hours');
Izvade
Pēc iepriekš minētās komandas izpildes mēs iegūsim šādu rezultātu, kas parāda intervālu 30 dienas kā viens mēnesis un 24 stundu intervāls kā viena diena :
Bez tam, attaisnot_intervālu funkcija regulē intervālu vērtības ar palīdzību attaisnot_dienas un attaisnot_stundas ar pievienotām zīmju modifikācijām:
Nākamajā piemērā mēs izmantosim funkciju justfiy_interval ar komandu SELECT:
SELECT justify_interval(interval '6 months -1 hour');
Izvade
Pēc iepriekš minētās komandas ieviešanas mēs saņemsim šādu izvadi:
kontroles struktūras python
Pārskats
Iekš PostgreSQL intervāla datu tips sadaļā, mēs esam apguvuši šādas tēmas:
- The PostgreSQL intervāla dati tips tiek izmantots, lai saglabātu un izvietotu periodu gadi, mēneši, dienas, stundas, minūtes, sekundes.
- Mēs izmantojām dažādus Intervālu funkcijas , piemēram, TAGAD(), TO_CHAR(), lai uzlabotu intervālu vērtības no konkrētās tabulas.
- PostgreSQL intervāla vērtībām ir abas ievade un izvade intervāla formāts.
- Mēs varam pielāgot PostgreSQL intervāla vērtības ar palīdzību justify_days(), justify_hours, justify_interval() funkcijas.
- Mēs varam izmantot EKSTRAKTS() funkcija, lai iegūtu intervāla lauka vērtības.