Data a časy jsou důležité, pomáhají udržovat pořádek a jsou nedílnou součástí každé softwarové operace.
Efektivní práce s nimi v rámci databáze se někdy může zdát matoucí, ať už jde o práci v různých časových pásmech, přidávání / odečítání dat a další operace.
Naučte se různé funkce MySQL, které jsou k dispozici pro snadnou manipulaci a správu dat a časů v databázi.
Práce s časovými pásmy
Abyste udrželi standardizované věci, měli byste vždy pracovat pouze s daty / časy v časovém pásmu UTC. Pokaždé, když vytvoříte připojení k databázi MySQL, měli byste přepnout časové pásmo na UTC, což lze provést pomocí následujícího příkazu SQL:
SET TIME_ZONE = '+0: 00'
Vzhledem k tomu, že všechna data budou nyní uložena v UTC, vždy víte, s čím pracujete, což zjednodušuje a zjednodušuje práci.
V případě potřeby můžete snadno převést časové pásmo jakékoli hodnoty datetime / timestamp s praktickým CONVERT_TZ () Funkce MySQL. Nejprve musíte znát offset, například PST na západním pobřeží Severní Ameriky je UTC -0: 00, takže můžete použít:
PolyTime, nová aplikace od MakeUseOf, usnadňuje srovnání časových pásem po celém světě. Tady je to, co s tím můžete dělat a jak to funguje.
SELECT CONVERT_TZ ('2021-02-04 21:47:23', '+0: 00', '-8: 00');
Výsledkem je 2021-02-04 13:47:23 což je přesně správné. Tyto tři argumenty byly předány CONVERT_TZ () jsou první datetime / timestamp, kterým začínáte (použijte now () pro aktuální čas), druhý vždy bude '+0:00' protože všechna data jsou v databázi vynucena na UTC a poslední je posun, na který chceme datum převést.
Přidat / Odečíst data
Mnohokrát musíte přidat nebo odečíst data, například pokud potřebujete načíst záznamy z doby před týdnem, nebo naplánovat něco za měsíc.
Naštěstí má MySQL vynikající DATE_ADD () a DATE_SUB () funkce, díky nimž je tento úkol extrémně snadný. Například můžete pomocí příkazu SQL odečíst dva týdny od aktuálního data:
SELECT DATE_SUB (nyní (), interval 2 týdny);
Pokud byste místo toho chtěli přidat tři dny k existujícímu časovému razítku, použili byste:
SELECT DATE_ADD ('2021-02-07 11:52:06', interval 3 dny);
Obě funkce fungují stejně, první argument je časová značka, kterou začínáte, a druhý argument je interval, který se má přidat nebo odečíst. Druhý argument má vždy stejný formát, počínaje slovem interval následuje číselná hodnota a samotný interval, který může být kterýkoli z následujících: sekunda, minuta, hodina, den, týden, měsíc, čtvrtletí, rok.
Pro další příklad, pokud jste chtěli načíst všechna přihlášení, ke kterým došlo za posledních 34 minut, můžete použít příkaz SQL, jako například:
VÝBĚR * Z FROM přihlášení WHERE login_date> = DATE_SUB (now (), interval 45 minut);
Jak vidíte, načetly by se všechny záznamy z přihlášení tabulka s datem přihlášení větším než aktuální čas minus 45 minut, nebo jinými slovy posledních 45 minut.
Získejte rozdíl mezi daty
Někdy musíte zjistit, kolik času uplynulo mezi dvěma daty. Počet dní mezi dvěma různými daty můžete snadno zjistit pomocí DATEDIFF funkce, jako je níže uvedený příkaz SQL:
SELECT DATEDIFF (now (), '2020-12-15');
The DATEDIFF Funkce přebírá dva argumenty, oba jsou razítkem data a času a udává počet dní mezi nimi. Výše uvedený příklad ukáže počet dní, které uplynuly od 15. prosince 2020 do dneška.
Chcete-li zjistit počet sekund mezi dvěma daty, stiskněte TO_SECONDS () funkce může přijít vhod, například:
SELECT TO_SECONDS (now ()) - TO_SECONDS ('2021-02-05 11:56:41');
Výsledkem bude počet sekund mezi dvěma uvedenými daty.
Extrahujte segmenty z dat
Existují různé funkce MySQL, které vám umožňují snadno extrahovat konkrétní segmenty z dat, například pokud byste chtěli pouze měsíc, den v roce nebo hodinu. Zde je několik příkladů takových funkcí:
VYBERTE MĚSÍC ('2021-02-11 15:27:52');
VYBERTE HODINU (nyní ());
VYBERTE DENNÍ ROK ('2021-07-15 12:00:00');
Výsledkem výše uvedených příkazů SQL bude 02, aktuální hodina a 196 15. září je 196. dnem roku. Tady je seznam všech dostupných funkcí extrakce data, přičemž každá má pouze jeden argument, přičemž datum je extrahováno z:
- DRUHÝ()
- MINUTA()
- HODINA ()
- DEN()
- WEEK () - Číslo 0 - 52 definující týden v roce.
- MĚSÍC()
- ČTVRTLETICE () - číslo 1 - 4 definující čtvrtletí roku.
- ROK ()
- DAYOFYEAR () - den v roce (např. 15. září = 196).
- LAST_DAY () - poslední den v daném měsíci.
- DATE () - Datum ve formátu RRRR-MM-DD bez času.
- TIME () Čas ve formátu HH: II: SS bez data.
- TO_DAYS () - Počet dní od roku 0 n.l.
- TO_SECONDS () - Počet sekund od roku 0 n.l.
- UNIX_TIMESTAMP () - Počet sekund od epochy (1. ledna 1970)
Například pokud jste možná chtěli pouze načíst měsíc a rok, kdy byli vytvořeni všichni uživatelé, můžete použít příkaz SQL, jako například:
SELECT id, MONTH (created_at), YEAR (created_at) FROM users;
Tím by se načetly všechny záznamy v rámci uživatelů tabulka a ukázat ID, měsíc a rok, ve kterém byl každý uživatel vytvořen.
Seskupování záznamů podle období
Jedním z vynikajících využití funkcí data je schopnost seskupovat záznamy podle data pomocí období SKUPINA VYTVOŘENÁ v rámci vašich příkazů SQL. Například si možná přejete vytáhnout celkovou částku všech objednávek v roce 2020 seskupenou podle měsíců. Můžete použít příkaz SQL, jako například:
VYBERTE MĚSÍC (created_at), SUMA (částka) Z objednávek, KDE created_at MEZI '2020-01-01 00:00:00' A '2020-12-31 23:59:59' SKUPINA MĚSÍCEM (created_at);
Tím by se načetly všechny objednávky zadané v roce 2020, seskupily se podle měsíce, kdy byly vytvořeny, a vrátilo se 12 záznamů zobrazujících celkovou objednanou částku každý měsíc v roce.
Vezměte prosím na vědomí, že pro lepší výkon indexu je vždy nejlepší nepoužívat funkce data, jako je ROK() v klauzuli WHERE příkazů SQL a místo toho použijte MEZI operátor, jak je uvedeno ve výše uvedeném příkladu.
Už nikdy se nenechte zmást daty
Díky výše uvedeným znalostem nyní můžete efektivně pracovat, překládat a provádět operace v datech a časech v široké škále případů použití.
Nezapomeňte vždy používat UTC při práci s daty pro jednoduchost a k efektivní správě využijte výše uvedené tipy data v rámci vašeho softwaru, ať už jde o dokončení jednoduchých výpočtů nebo o snadné vytváření sestav seskupených podle data období.
Pokud jste v SQL něco nového, nezapomeňte si je prohlédnout základní příkazy SQL abychom vám pomohli zlepšit používání SQL.
Tato příručka prozkoumá prvky profesionální zprávy a zkontroluje strukturování, styling a finalizaci dokumentu v aplikaci Microsoft Word.
- Nespecifikováno
Přihlaste se k odběru našeho zpravodaje
Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!
Ještě jeden krok…!
V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.