Datumi in časi so pomembni, pomagajo organizirati stvari in so sestavni vidik vsakega delovanja programske opreme.
Učinkovito delo z njimi v zbirki podatkov se včasih zdi zmedeno, ne glede na to, ali deluje v različnih časovnih pasovih, dodaja / odšteva datume in druge operacije.
Spoznajte različne funkcije MySQL, ki so na voljo za enostavno upravljanje in upravljanje datumov / ure v vaši bazi podatkov.
Delo s časovnimi pasovi
Če želite, da stvari ostanejo standardizirane, morate vedno uporabljati datume in ure v časovnem pasu UTC. Vsakič, ko vzpostavite povezavo z bazo podatkov MySQL, preklopite časovni pas na UTC, kar lahko storite z naslednjim stavkom SQL:
SET TIME_ZONE = '+0: 00'
Ker bodo zdaj vsi datumi shranjeni v UTC, vedno veste, s čim delate, tako da bodo stvari bolj poenostavljene in naravnost naprej.
Po potrebi lahko enostavno pretvorite časovni pas poljubne vrednosti datuma / časa s priročnikom CONVERT_TZ () MySQL funkcija. Najprej morate vedeti odmik, na primer PST na zahodni obali Severne Amerike je UTC -08: 00, zato lahko uporabite:
PolyTime, nova aplikacija podjetja MakeUseOf, olajša primerjavo časovnih pasov po vsem svetu. Tukaj je, kaj lahko storite z njim in kako deluje.
SELECT CONVERT_TZ ('2021-02-04 21:47:23', '+0: 00', '-8: 00');
Posledica tega je 2021-02-04 13:47:23 kar je točno pravilno. Trije argumenti, posredovani CONVERT_TZ () so prvi datum / čas, s katerim začnete (uporabite zdaj () za trenutni čas), drugi pa bo vedno '+0:00' ker so vsi datumi v bazi prisiljeni na UTC, zadnji pa je zamik, v katerega želimo datum pretvoriti.
Dodaj / odštej datume
Velikokrat morate dodati ali odšteti datume, na primer, če morate pridobiti zapise izpred enega tedna, ali nekaj razporedite čez mesec dni.
K sreči ima MySQL odlične DATE_ADD () in DATE_SUB () funkcije, ki olajšajo to nalogo. Na primer, lahko od stavka SQL odštejete dva tedna od trenutnega datuma:
SELECT DATE_SUB (zdaj (), interval 2 tedna);
Če bi namesto tega želeli dodati tri dni obstoječemu časovnemu žigu, bi uporabili:
SELECT DATE_ADD ('2021-02-07 11:52:06', interval 3 dni);
Obe funkciji delujeta enako, prvi argument je časovni žig, s katerim začnete, drugi argument pa interval za dodajanje ali odštevanje. Drugi argument je vedno oblikovan enako, začenši z besedo interval čemur sledi številčna vrednost in sam interval, ki je lahko kar koli od naslednjega: sekunda, minuta, ura, dan, teden, mesec, četrtletje, leto.
Za drug primer, če ste želeli pridobiti vse prijave, ki so se zgodile v zadnjih 34 minutah, lahko uporabite stavek SQL, kot je:
SELECT * FROM prijave WHERE login_date> = DATE_SUB (zdaj (), interval 45 minut);
Kot lahko vidite, bi s tem pridobili vse zapise iz prijave tabela z datumom prijave, ki je daljši od trenutnega časa minus 45 minut, ali z drugimi besedami, zadnjih 45 minut.
Dobite razliko med datumi
Včasih morate ugotoviti, koliko časa je preteklo med dvema datumoma. Število dni med dvema različnima datumoma lahko enostavno dobite s tipko DATEDIFF funkcija, kot je spodnja izjava SQL:
IZBERITE DATEDIFF (zdaj (), '2020-12-15');
The DATEDIFF funkcija zavzame dva argumenta, ki sta oba datumska / časovna žiga, in poda število dni med njima. Zgornji primer bo pokazal število dni, ki je preteklo od 15. decembra 2020 do danes.
Če želite dobiti število sekund med dvema datumoma, TO_SECONDS () funkcija lahko pride prav, na primer:
IZBERI TO_SECONDS (zdaj ()) - TO_SECONDS ('2021-02-05 11:56:41');
Rezultat bo število sekund med navedenima datumoma.
Izvlecite segmente iz datumov
Obstajajo različne funkcije MySQL, ki vam omogočajo enostavno izvlečenje določenih segmentov iz datumov, na primer, če želite le mesec, dan v letu ali uro. Tu je nekaj primerov takšnih funkcij:
IZBERITE MESEC ('2021-02-11 15:27:52');
SELECT HOUR (zdaj ());
IZBERITE DAYOFYEAR ('2021-07-15 12:00:00');
Zgornji stavki SQL bi povzročili 02, trenutna ura in 196 saj je 15. september 196. dan v letu. Tu je seznam vseh razpoložljivih funkcij za pridobivanje datumov, pri čemer vsaka zajema samo en argument, pri čemer je datum izvlečen iz:
- DRUGI ()
- MINUTE ()
- URA ()
- DAN ()
- TEDEN () - Številka 0 - 52, ki določa teden v letu.
- MESEC ()
- četrtletje () - številka 1 - 4, ki opredeljuje četrtletje leta.
- LETO ()
- DAYOFYEAR () - Dan v letu (npr. 15. september = 196).
- LAST_DAY () - Zadnji dan v danem mesecu.
- DATUM () - Datum v obliki LLLL-MM-DD brez časa.
- TIME () Čas v HH: II: SS format brez datuma.
- TO_DAYS () - Število dni od 0 AD.
- TO_SECONDS () - Število sekund od 0 AD.
- UNIX_TIMESTAMP () - Število sekund od epohe (1. januar 1970)
Če ste na primer morda želeli pridobiti samo mesec in leto, v katerem so bili ustvarjeni vsi uporabniki, lahko uporabite stavek SQL, kot je:
IZBERI id, MONTH (created_at), YEAR (created_at) FROM uporabniki;
To bi pridobilo vse zapise v uporabnikov tabela in prikaže ID #, mesec in leto, v katerem je bil ustvarjen vsak uporabnik.
Združevanje zapisov po datumu
Odlična uporaba funkcij datuma je možnost združevanja zapisov po datumu SKUPINA PO znotraj stavkov SQL. Na primer, morda želite potegniti skupni znesek vseh naročil v letu 2020, razvrščenih po mesecih. Lahko uporabite stavek SQL, kot je:
IZBERITE MESEC (ustvarjeno_at), SUM (znesek) OD naročil, KJER ustvarjeno_MEJ '2020-01-01 00:00:00' IN '2020-12-31 23:59:59' SKUPINA PO MESECU (created_at);
S tem bi pridobili vsa naročila, oddana v letu 2020, jih razvrstili po mesecu, ko so bila ustvarjena, in vrnili 12 zapisov, ki prikazujejo skupni znesek naročenih mesecev v letu.
Prosimo, upoštevajte, da je za boljše delovanje indeksa vedno najbolje, da se izognete uporabi datumskih funkcij, kot je LETO () znotraj stavka WHERE SQL stavkov in namesto tega uporabite MED kot je prikazano v zgornjem primeru.
Nikoli več ne bodi zmeden z datumi
Z uporabo zgornjega znanja lahko zdaj učinkovito delate, prevajate in izvajate operacije v datumih in časih v najrazličnejših primerih uporabe.
Ne pozabite vedno uporabljati UTC pri delu z datumi zaradi enostavnosti in za učinkovito upravljanje uporabite zgornje nasvete datume v vaši programski opremi, najsi gre za dokončanje preprostih izračunov ali enostavno vlečenje poročil, razvrščenih po datumih obdobja.
Če ste v SQL nekaj novega, si jih oglejte bistveni ukazi SQL za izboljšanje uporabe SQL.
Ta priročnik preučuje elemente strokovnega poročila in pregleduje strukturiranje, oblikovanje in dokončanje dokumenta v programu Microsoft Word.
- Nedoločeno
Naročite se na naše novice
Pridružite se našemu glasilu za tehnične nasvete, preglede, brezplačne e-knjige in ekskluzivne ponudbe!
Še en korak…!
Potrdite svoj e-poštni naslov v e-poštnem sporočilu, ki smo vam ga pravkar poslali.