Datos ir laikai yra svarbūs, jie padeda tvarkyti reikalus ir yra neatsiejamas bet kokios programinės įrangos veikimo aspektas.
Efektyvus darbas su jais duomenų bazėje kartais gali atrodyti painus, nesvarbu, ar jis dirba įvairiose laiko juostose, pridėdamas / atimdamas datas ir kitas operacijas.
Sužinokite apie įvairias „MySQL“ funkcijas, kurias galite lengvai tvarkyti ir valdyti datas / laikus savo duomenų bazėje.
Darbas su laiko juostomis
Kad viskas būtų standartizuota, turėtumėte dirbti tik su datomis / laikais UTC laiko juostoje. Kiekvieną kartą, kai užmezgate ryšį su „MySQL“ duomenų baze, turėtumėte perjungti laiko juostą į UTC, kurią galima padaryti naudojant šį SQL sakinį:
NUSTATYTI TIME_ZONE = '+0: 00'
Kadangi visos datos dabar bus išsaugotos UTC, visada žinosite, su kuo dirbate, todėl viskas bus paprasčiau ir paprasčiau.
Kai reikia, galite lengvai konvertuoti laiko juostą bet kurios datos / laiko žymės reikšmės CONVERT_TZ () „MySQL“ funkcija. Pirmiausia turite žinoti poslinkį, pavyzdžiui, Šiaurės Amerikos vakarinėje pakrantėje PST yra UTC -08: 00, todėl galėtumėte naudoti:
Nauja „MakeUseOf“ programa „PolyTime“ leidžia lengvai palyginti laiko juostas visame pasaulyje. Štai ką galite su juo padaryti ir kaip tai veikia.
PASIRINKITE KONVERTAVIMĄ ('2021-02-04 21:47:23', '+0: 00', '-8: 00');
Tai lemia 2021-02-04 13:47:23 kas yra tiksliai teisinga. Trys argumentai perduoti CONVERT_TZ () yra pirmiausia laiko ir laiko žymė, nuo kurios pradedate (dabartiniam laikui naudokite dabar (), antroji visada bus '+0:00' kadangi visos datos yra priverstos UTC duomenų bazėje, o paskutinė yra kompensacija, į kurią norime konvertuoti datą.
Sudėti / atimti datas
Daug kartų reikia pridėti ar atimti iš datų, pvz., Jei reikia gauti įrašus iš prieš savaitę ar suplanuoti ką nors po mėnesio.
Laimei, „MySQL“ turi puikų DATE_ADD () ir DATE_SUB () funkcijos palengvina šią užduotį. Pavyzdžiui, naudodami SQL sakinį galite atimti dvi savaites nuo dabartinės datos:
SELECT DATE_SUB (dabar (), 2 savaičių intervalas);
Jei vietoj to norite pridėti tris dienas prie esamos laiko žymės, naudosite:
SELECT DATE_ADD ('2021-02-07 11:52:06', 3 dienų intervalas);
Abi funkcijos veikia vienodai, pirmasis argumentas yra laiko žymė, nuo kurios pradedate, o antrasis argumentas yra intervalas, kurį reikia pridėti arba atimti. Antrasis argumentas visada suformuluojamas vienodai, pradedant žodžiu intervalas po kurio seka skaitinė reikšmė ir pats intervalas, kuris gali būti bet kuris iš šių: sekundė, minutė, valanda, diena, savaitė, mėnuo, ketvirtis, metai.
Kitas pavyzdys: jei norite gauti visus prisijungimus, kurie įvyko per pastarąsias 34 minutes, galite naudoti tokį SQL sakinį:
PASIRINKTI * IŠ prisijungimų WHERE login_date> = DATE_SUB (dabar (), intervalas 45 minutės);
Kaip matote, tai atgaus visus įrašus iš prisijungimai lentelę su prisijungimo data, didesne nei dabartinis laikas atėmus 45 minutes arba, kitaip tariant, praėjusias 45 minutes.
Gaukite skirtumą tarp datų
Kartais reikia sužinoti, kiek laiko praėjo tarp dviejų pasimatymų. Galite lengvai sužinoti dienų skaičių tarp dviejų skirtingų datų DATEDIFF funkcija, pvz., žemiau pateiktas SQL sakinys:
SELECT DATEDIFF (dabar (), '2020-12-15');
DATEDIFF Funkcijai reikia dviejų argumentų, kurie abu yra datos / laiko antspaudai, ir nurodo dienų skaičių tarp jų. Ankstesniame pavyzdyje bus parodytas dienų, praėjusių nuo 2020 m. Gruodžio 15 d., Iki šių dienų skaičius.
Norėdami sužinoti sekundžių skaičių tarp dviejų datų, TO_SECONDS () funkcija gali būti naudinga, pavyzdžiui:
PASIRINKITE TO_SECONDS (dabar ()) - TO_SECONDS ('2021-02-05 11:56:41');
Tai lems sekundžių skaičių tarp dviejų nurodytų datų.
Išskleisti segmentus iš datų
Yra įvairių „MySQL“ funkcijų, leidžiančių lengvai išskirti konkrečius segmentus iš datų, pavyzdžiui, jei norėtumėte tik mėnesio, metų dienos ar valandos. Štai keli tokių funkcijų pavyzdžiai:
PASIRINKITE MĖNESĮ ('2021-02-11 15:27:52');
PASIRINKTI VALANDĄ (dabar ());
PASIRINKITE DAYOFYEAR ('2021-07-15 12:00:00');
Pirmiau pateikti SQL sakiniai sukeltų 02, dabartinę valandą ir 196 nes rugsėjo 15-oji yra 196-oji metų diena. Čia pateikiamas visų galimų datos išgavimo funkcijų sąrašas, kiekvienam iš jų paimant tik vieną argumentą, iš kurio data išgaunama:
- ANTRA ()
- MINUTĖ()
- VALANDA ()
- DIENA ()
- SAVAITĖ () - skaičius 0 - 52, apibrėžiantis savaitę per metus.
- MĖNESIS ()
- KETVIRTIS () - skaičius 1 - 4, apibrėžiantis metų ketvirtį.
- YEAR ()
- DAYOFYEAR () - metų diena (pvz. Rugsėjo 15 d. = 196).
- LAST_DAY () - paskutinė nurodyto mėnesio diena.
- DATA () - data MMMM-MM-DD formatu be laiko.
- TIME () laikas HH: II: SS formatu be datos.
- TO_DAYS () - dienų skaičius nuo 0 m.
- TO_SECONDS () - sekundžių skaičius nuo 0 m.
- UNIX_TIMESTAMP () - sekundžių skaičius nuo epochos (1970 m. Sausio 1 d.)
Pvz., Jei galbūt norėjote gauti tik mėnesį ir metus, kuriuos sukūrė visi vartotojai, galite naudoti tokį SQL sakinį:
SELECT ID, MONTH (sukurtas_at), YEAR (sukurtas_at) IŠ naudotojų;
Tai atgautų visus įrašus vartotojų lentelę ir parodykite kiekvieno vartotojo sukūrimo ID, mėnesį ir metus.
Grupuoti įrašus pagal datos laikotarpį
Puikus datos funkcijų panaudojimas yra galimybė grupuoti įrašus pagal datos periodą GRUPUOTI PAGAL jūsų SQL sakiniuose. Pvz., Galbūt norite surinkti bendrą visų 2020 m. Užsakymų sumą sugrupuoti pagal mėnesį. Galite naudoti tokį SQL sakinį kaip:
PASIRINKITE MĖNESĮ (sukurtas_at), SUMĄ (sumą) NUO užsakymų, KUR sukurtas_ATARP '2020-01-01 00:00:00' IR '2020-12-31 23:59:59' GRUPĖ PAGAL MĖNESĮ (sukurtas_at);
Tai gautų visus užsakymus, pateiktus 2020 m., Sugrupuotų juos pagal jų sukūrimo mėnesį ir grąžintų 12 įrašų, kuriuose būtų nurodyta visa užsakyta suma kiekvieną metų mėnesį.
Atminkite, kad norint pagerinti indekso našumą, geriausia vengti naudoti datos funkcijas, tokias kaip METAI () SQL sakinių WHERE sąlygoje, o vietoj to naudokite TARP operatoriaus, kaip parodyta aukščiau pateiktame pavyzdyje.
Niekada nebepainiokite su datomis
Naudodamiesi pirmiau pateiktomis žiniomis, dabar galite efektyviai dirbti, versti ir atlikti operacijas datomis ir laikais įvairiais naudojimo atvejais.
Nepamirškite visada naudoti UTC dirbdami su datomis, kad būtų paprasčiau, ir naudokite aukščiau pateiktus patarimus, kad galėtumėte efektyviai valdyti programinės įrangos datas, nesvarbu, ar norite atlikti paprastus skaičiavimus, ar lengvai parengti ataskaitas, sugrupuotas pagal datas laikotarpiais.
Jei dar šiek tiek nesinaudojate SQL, būtinai patikrinkite tai esminės SQL komandos padėti pagerinti jūsų SQL naudojimą.
Šiame vadove nagrinėjami profesionalios ataskaitos elementai ir apžvelgiamas dokumento struktūrizavimas, stilius ir užbaigimas „Microsoft Word“.
- Nenurodytas
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!
Dar vienas žingsnis…!
Prašome patvirtinti savo el. Pašto adresą el. Laiške, kurį jums ką tik išsiuntėme.