Dátumy a časy sú dôležité, pomáhajú udržiavať poriadok v organizácii a sú neoddeliteľnou súčasťou akejkoľvek činnosti softvéru.
Efektívna práca s nimi v rámci databázy sa niekedy môže zdať mätúca, či už ide o prácu v rôznych časových pásmach, pridávanie / odčítanie dátumov a ďalšie operácie.
Naučte sa rôzne funkcie MySQL, ktoré sú k dispozícii na ľahkú manipuláciu a správu dátumov a časov vo vašej databáze.
Práca s časovými pásmami
Aby ste zaistili štandardizáciu vecí, mali by ste vždy pracovať iba s dátumami a časmi v časovom pásme UTC. Zakaždým, keď sa pripojíte k databáze MySQL, mali by ste časové pásmo prepnúť na UTC, čo je možné vykonať pomocou nasledujúceho príkazu SQL:
SET TIME_ZONE = '+0: 00'
Pretože všetky dátumy sa teraz budú ukladať v UTC, vždy budete vedieť, s čím pracujete, čo zjednodušuje a zjednodušuje prácu.
V prípade potreby môžete ľahko previesť časové pásmo akejkoľvek hodnoty času a času s užitočnou hodnotou CONVERT_TZ () Funkcia MySQL. Najprv musíte poznať posun, napríklad PST na západnom pobreží Severnej Ameriky je UTC -08: 00, takže môžete použiť:
PolyTime, nová aplikácia od MakeUseOf, uľahčuje porovnanie časových pásiem po celom svete. Tu je uvedené, čo s tým môžete robiť a ako to funguje.
SELECT CONVERT_TZ ('2021-02-04 21:47:23', '+0: 00', '-8: 00');
Výsledkom je 2021-02-04 13:47:23 čo je presne správne. Tieto tri argumenty prešli na CONVERT_TZ () sú prvé datetime / timestamp, s ktorým začínate (použite now () pre aktuálny čas), druhé vždy bude '+0:00' pretože všetky dátumy sú v databáze vynútené na UTC a posledný je posun, na ktorý chceme dátum previesť.
Sčítanie / odčítanie dátumov
Mnohokrát musíte pridať alebo odrátať dátumy, napríklad ak potrebujete načítať záznamy spred týždňa alebo niečo naplánovať o mesiac.
Našťastie MySQL má vynikajúce DATE_ADD () a DATE_SUB () funkcie, vďaka ktorým je táto úloha mimoriadne ľahká. Napríklad pomocou príkazu SQL môžete odpočítať dva týždne od aktuálneho dátumu:
SELECT DATE_SUB (teraz (), interval 2 týždne);
Ak by ste namiesto toho chceli pridať k existujúcej časovej pečiatke tri dni, použili by ste:
SELECT DATE_ADD ('2021-02-07 11:52:06', interval 3 dni);
Obidve funkcie fungujú rovnako, prvý argument je časová značka, od ktorej začínate, a druhý argument je interval na sčítanie alebo odčítanie. Druhý argument má vždy rovnaký formát, počnúc slovom interval nasledovaná číselnou hodnotou a samotným intervalom, ktorým môže byť ktorákoľvek z nasledujúcich: sekunda, minúta, hodina, deň, týždeň, mesiac, štvrťrok, rok.
Ako ďalší príklad, ak chcete načítať všetky prihlásenia, ktoré sa vyskytli za posledných 34 minút, môžete použiť príkaz SQL, ako napríklad:
SELECT * FROM logins WHERE login_date> = DATE_SUB (now (), interval 45 minutes);
Ako vidíte, týmto by sa získali všetky záznamy z prihlasovacie údaje tabuľka s dátumom prihlásenia väčším ako je aktuálny čas mínus 45 minút, alebo inak povedané, posledných 45 minút.
Získajte rozdiel medzi dátumami
Niekedy musíte zistiť, koľko času uplynulo medzi dvoma dátumami. Počet dní medzi dvoma rôznymi dátumami môžete ľahko zistiť pomocou znaku DATEDIFF napríklad príkaz SQL:
VYBERTE DATEDIFF (now (), '2020-12-15');
The DATEDIFF Funkcia vezme dva argumenty, pričom obidva sú pečiatkami dátumu a času a určí počet dní medzi nimi. Vyššie uvedený príklad ukáže počet dní, ktoré uplynuli od 15. decembra 2020 do dnešného dňa.
Ak chcete získať počet sekúnd medzi dvoma dátumami, stlačte TO_SECONDS () funkcia môže byť užitočná, napríklad:
VYBERTE TO_SECONDS (teraz ()) - TO_SECONDS ('2021-02-05 11:56:41');
To bude mať za následok počet sekúnd medzi dvoma poskytnutými dátumami.
Extrahujte segmenty z dátumov
Existuje niekoľko funkcií MySQL, ktoré vám umožňujú ľahko extrahovať konkrétne segmenty z dátumov, napríklad keby ste chceli iba mesiac, deň v roku alebo hodinu. Tu je niekoľko príkladov takýchto funkcií:
VYBERTE MESIAC ('2021-02-11 15:27:52');
VYBERTE HODINU (teraz ());
SELECT DAYOFYEAR ('2021-07-15 12:00:00');
Výsledkom by boli vyššie uvedené príkazy SQL 02, aktuálna hodina a 196 keďže 15. september je 196. dňom v roku. Tu je zoznam všetkých dostupných funkcií extrakcie dátumu, pričom každá prijíma iba jeden argument, pričom dátum je extrahovaný z:
- DRUHÉ ()
- MINÚTA ()
- HODINA ()
- DEŇ ()
- WEEK () - číslo 0 - 52 definujúce týždeň v roku.
- MESIAC ()
- QUARTER () - Číslo 1 - 4 definujúce štvrťrok.
- YEAR ()
- DAYOFYEAR () - deň v roku (napr. 15. september = 196).
- LAST_DAY () - posledný deň v danom mesiaci.
- DATE () - Dátum vo formáte RRRR-MM-DD bez času.
- TIME () Čas vo formáte HH: II: SS bez dátumu.
- TO_DAYS () - počet dní od n. L.
- TO_SECONDS () - Počet sekúnd od roku 0 po Kr.
- UNIX_TIMESTAMP () - Počet sekúnd od epochy (1. januára 1970)
Ak ste napríklad chceli získať iba mesiac a rok, v ktorom boli všetci používatelia vytvorení, môžete použiť príkaz SQL, ako napríklad:
SELECT id, MONTH (created_at), YEAR (created_at) FROM používateľov;
Takto by sa načítali všetky záznamy v rámci súboru používateľov tabuľka a ukázať ID, mesiac a rok, v ktorom bol každý užívateľ vytvorený.
Zoskupovanie záznamov podľa obdobia
Jedným z vynikajúcich využití funkcií dátumu je schopnosť zoskupovať záznamy podľa obdobia podľa dátumu SKUPINA PODĽA v rámci vašich príkazov SQL. Napríklad by ste chceli vytiahnuť celkovú sumu všetkých objednávok v roku 2020 zoskupenú podľa mesiacov. Môžete použiť príkaz SQL, ako napríklad:
VYBERTE MESIAC (created_at), SUMA (suma) Z objednávok KDE created_at MEDZI '2020-01-01 00:00:00' A '2020-12-31 23:59:59' SKUPINA MESIACI (created_at);
Takto by sa načítali všetky objednávky zadané v roku 2020, zoskupili sa podľa mesiaca, v ktorom boli vytvorené, a vrátilo by sa 12 záznamov zobrazujúcich celkovú objednanú sumu každý mesiac v roku.
Upozorňujeme, že pre lepší výkon indexu je vždy lepšie nepoužívať funkcie dátumu, ako sú YEAR () v klauzule WHERE príkazov SQL a namiesto toho použite znak MEDZI ako je uvedené vo vyššie uvedenom príklade.
Už nikdy sa nenechajte zamieňať s dátumami
Pomocou vyššie uvedených poznatkov teraz môžete efektívne pracovať, prekladať a vykonávať operácie v dátumoch a časoch v širokej škále prípadov použitia.
Nezabudnite pri práci s dátumami kvôli jednoduchosti vždy používať UTC a vyššie uvedené tipy môžete využiť na efektívnu správu dáta vo vašom softvéri, či už ide o dokončenie jednoduchých výpočtov alebo ľahké vytiahnutie zostáv zoskupených podľa dátumu obdobia.
Ak ste v odbore SQL niečím novým, nezabudnite si ich pozrieť základné príkazy SQL aby ste zlepšili svoje používanie SQL.
Táto príručka skúma prvky odbornej správy a kontroluje štruktúrovanie, štylizáciu a finalizáciu vášho dokumentu v programe Microsoft Word.
- Nešpecifikované
Prihlásiť sa ku odberu noviniek
Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!
Ešte jeden krok…!
V e-maile, ktorý sme vám práve poslali, potvrďte svoju e-mailovú adresu.