Kuupäevad ja kellaajad on olulised, need aitavad asju korraldada ja on iga tarkvara toimimise lahutamatu osa.

Nendega tõhus töötamine andmebaasis võib mõnikord tunduda segane, olgu see siis töötamine erinevates ajavööndites, kuupäevade liitmine / lahutamine ja muud toimingud.

Õppige erinevaid MySQL-i funktsioone, et hõlpsasti oma andmebaasis olevaid kuupäevi / kellaaegu hallata ja hallata.

Töö ajavöönditega

Asjade ühtlustamise tagamiseks peaksite kunagi töötama ainult kuupäevade ja kellaaegadega UTC ajavööndis. Iga kord, kui loote ühenduse MySQL-i andmebaasiga, peaksite ajavööndi vahetama UTC-le, mida saab teha järgmise SQL-i käsuga:

SET TIME_ZONE = '+0: 00'

Kuna kõik kuupäevad salvestatakse nüüd UTC-s, teate alati, millega töötate, muutes asjad lihtsamaks ja otse edasi.

Vajadusel saate hõlpsalt teisendada ajavöönd mis tahes kuupäeva / ajatempli väärtusest käepärase abil CONVERT_TZ () MySQL funktsioon. Kõigepealt peate teadma nihet, näiteks PST Põhja-Ameerika läänerannikul on UTC -08: 00, et saaksite kasutada järgmist:

instagram viewer
PolyTime on parim ajavööndi teisendamise rakendus korraga mitmele linnale

MakeUseOfi uus rakendus PolyTime muudab kogu maailmas ajavööndite võrdlemise lihtsaks. Siin on, mida saate sellega teha ja kuidas see töötab.

SELECT CONVERT_TZ ('2021-02-04 21:47:23', '+0: 00', '-8: 00');

Selle tulemuseks on 2021-02-04 13:47:23 mis on täpselt õige. Kolm argumenti edastati CONVERT_TZ () on esimesed kuupäeva- ja ajatemplid, millega alustate (kasutage praeguse aja jaoks praegu ()), teine ​​on alati '+0:00' kuna kõik kuupäevad on andmebaasis sunnitud UTC-le ja viimane on nihe, mille soovime kuupäeva teisendada.

Lisage / lahutage kuupäevad

Mitu korda peate kuupäevadesse lisama või nendest lahutama, näiteks kui peate tooma nädala taguseid kirjeid või midagi ajastama kuu aja pärast.

Õnneks on MySQL-il suurepärane DATE_ADD () ja DATE_SUB () funktsioonid, mis muudavad selle ülesande ülimalt lihtsaks. Näiteks saate SQL-lausega lahutada kaks nädalat praegusest kuupäevast:

SELECT DATE_SUB (nüüd (), intervall 2 nädalat);

Kui soovite selle asemel lisada olemasolevale ajatemplile kolm päeva, kasutaksite järgmist:

SELECT DATE_ADD ('2021-02-07 11:52:06', intervall 3 päev);

Mõlemad funktsioonid töötavad samamoodi, esimene argument on ajatempel, millega alustate, ja teine ​​argument on lisamise või lahutamise intervall. Teine argument on alati vormindatud samaga, alustades sõnast intervall järgneb arvväärtus ja intervall ise, mis võib olla üks järgmistest: sekund, minut, tund, päev, nädal, kuu, kvartal, aasta.

Veel ühe näite saamiseks, kui soovite hankida kõik viimase 34 minuti jooksul sisse logitud sisselogimised, võite kasutada näiteks järgmist SQL-lauset:

SELECT * FROM sisselogimistest WHERE login_date> = DATE_SUB (nüüd (), intervall 45 minutit);

Nagu näete, tooks see kõik kirjed saidilt sisselogimised tabel, mille sisselogimiskuupäev on suurem kui praegune aeg miinus 45 minutit või teisisõnu möödunud 45 minutit.

Saage erinevus kuupäevade vahel

Mõnikord peate saama teada, kui palju aega on kahe kuupäeva vahel kulunud. Saate hõlpsasti saada kahe erineva kuupäeva vaheliste päevade arvu DATEDIFF funktsioon, näiteks järgmine SQL-lause:

SELECT DATEDIFF (nüüd (), '2020-12-15');

The DATEDIFF Funktsioon võtab kaks argumenti, mis mõlemad on kuupäeva / kellaaja templid, ja annab nende vahel olevate päevade arvu. Ülaltoodud näide näitab päevade arvu, mis on möödunud 15. detsembrist 2020 kuni tänaseni.

Kahe kuupäeva vaheliste sekundite arvu saamiseks tuleb TO_SECONDS () funktsioon võib olla kasulik, näiteks:

VALI TO_SECONDS (nüüd ()) - TO_SECONDS ('2021-02-05 11:56:41');

Selle tulemuseks on kahe etteantud kuupäeva vaheline sekundite arv.

Segmentide väljavõtmine kuupäevadest

Seal on mitmeid MySQL-i funktsioone, mis võimaldavad teil kuupäevadest hõlpsasti konkreetseid segmente välja tõmmata, näiteks kui soovite ainult kuud, aasta päeva või tundi. Siin on mõned näited sellistest funktsioonidest:

VALI KUU ('2021-02-11 15:27:52');
VALI TUNN (nüüd ());
VALI DAYOFYEAR ('2021-07-15 12:00:00');

Ülaltoodud SQL-i lausete tulemuseks oleks 02, praegune tund ja 196 kuna 15. september on aasta 196. päev. Siin on loend kõigist saadaolevatest kuupäeva ekstraktimisfunktsioonidest, millest igaühel on ainult üks argument, kuupäev on välja võetud:

- TEINE ()
- MINUT ()
- HOUR ()
- PÄEV ()
- WEEK () - arv 0 - 52, mis määratleb nädala aasta jooksul.
- KUU ()
- KVARTAL () - number 1 - 4, mis määrab aasta kvartali.
- YEAR ()
- DAYOFYEAR () - aasta päev (nt. 15. september = 196).
- LAST_DAY () - antud kuu viimane päev.
- DATE () - kuupäev vormingus AAAA-KK-PP ilma kellaajata.
- TIME () kellaaeg HH: II: SS-vormingus ilma kuupäevata.
- TO_DAYS () - päevade arv pärast pKr 0.
- TO_SECONDS () - sekundite arv pärast pKr 0.
- UNIX_TIMESTAMP () - sekundite arv ajast (1. jaanuar 1970)

Näiteks kui soovite soovida hankida ainult kuu ja aasta, mille kõik kasutajad on loonud, võite kasutada näiteks järgmist SQL-lauset:

SELECT id, MONTH (loodud_at), YEAR (loodud_at) kasutajatelt;

See tooks kõik kirjed sisse kasutajatele tabelisse ja kuvage ID #, kuu ja aasta, kus iga kasutaja loodi.

Dokumentide rühmitamine kuupäeva perioodi järgi

Kuupäevafunktsioonide üks suurepärane kasutus on võime rühmitada kirjeid kuupäevaperioodi järgi GRUPP JÄRGI oma SQL-i lausetes. Näiteks soovite ehk koondada kõigi 2020. aasta tellimuste kogusumma kuude kaupa. Võite kasutada sellist SQL-lauset nagu:

VALI KUU (loodud_at), SUM (summa) tellimustest, KUS loodi_2017-01-01 00:00:00 'JA' 2020-12-31 23:59:59 'VAHEL RÜHM (loodud_kuupäev);

See tooks välja kõik aastal 2020 tehtud tellimused, rühmitaks need nende loomise kuu järgi ja tagastaks 12 kirjet, mis näitavad aasta igal kuul tellitud kogusummat.

Pange tähele, et indeksi parema jõudluse saavutamiseks on alati parem vältida kuupäevafunktsioonide kasutamist AASTA () SQL-lausete WHERE klauslis ja kasutage selle asemel VAHEL operaator, nagu on näidatud ülaltoodud näites.

Ärge kunagi segi ajada kuupäevadega

Kasutades ülaltoodud teadmisi, saate nüüd tõhusalt töötada, tõlkida ja teha toiminguid kuupäevades ja kellaaegades paljudes kasutusjuhtumites.

Pidage meeles, et kuupäevadega töötamisel kasutage lihtsuse huvides alati UTC-d ja tõhusaks haldamiseks kasutage ülaltoodud näpunäiteid kuupäevad teie tarkvaras, olgu selleks siis lihtsate arvutuste lõpuleviimine või kuupäevade järgi rühmitatud aruannete hõlpsaks hankimiseks perioodidel.

Kui olete SQL-i jaoks veidi uus, kontrollige neid kindlasti olulised SQL-käsklused SQL-i kasutamise parandamiseks.

E-post
Kuidas luua professionaalseid aruandeid ja dokumente Microsoft Wordis

Selles juhendis uuritakse professionaalse aruande elemente ja vaadatakse üle dokumendi struktureerimine, stiil ja vormistamine Microsoft Wordis.

Seotud teemad
  • Täpsustamata
Autori kohta
Matt Dizak (16 artiklit on avaldatud)Veel Matt Dizakilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, kus leiate tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!

Veel üks samm !!!

Palun kinnitage oma e-posti aadress meilis, mille me just saatsime.

.