SQL Date Filtering

Sql Date Filtering



Filtrovanie údajov na základe hodnoty dátumu je bežný jav pri práci s databázami. Môže nám napríklad umožniť získať údaje z určitého časového rámca, agregovať výsledky na základe daného dátumu, identifikovať vzory trendov v priebehu času a ďalšie operácie súvisiace s časom.

Je to preto dôležitá zručnosť pre každého vývojára databáz. SQL nám poskytuje rôzne nástroje na filtrovanie dátumov v rámci daného súboru údajov.







Pridajte sa k nám v tomto príspevku, keď preskúmame rôzne metódy a techniky, ktoré môžeme použiť na filtrovanie dátumov vo svete SQL.



Predpoklady:

Predtým, ako sa vrhneme na praktické príklady a aplikácie, dovoľte nám rozobrať, čo na to potrebujete.



V tomto príspevku sa pokúsime dodržať metódy, ktoré možno použiť na takmer všetky databázy SQL. Na demonštračné účely však používame MySQL verziu 8 so vzorovou databázou Sakila.





Môžete si však stiahnuť a použiť ľubovoľný súbor údajov, ktorý chcete. Určite poukážeme na to, či poskytnutá metóda môže fungovať v iných databázach a poskytneme alternatívu, ak existuje.

Filtrujte konkrétny dátum

Najzákladnejšia operácia filtrovania dátumu je tá, kde potrebujeme získať záznam alebo viacero záznamov pre konkrétny dátum.



V takom prípade môžeme použiť klauzulu WHERE, za ktorou nasleduje stĺpec dátumu a aktuálna hodnota dátumu, ktorú chceme získať.

Predpokladajme napríklad, že chceme zistiť záznamy o prenájme, ktoré sa vyskytli 24. mája 2005. Dotaz môžeme spustiť takto:

VYBRAŤ *
Z požičovne
KDE dátum_požičovne = '2005-05-24 23:03:39' ;

V tomto prípade uvádzame dátum, ktorý chceme filtrovať ako hodnotu časovej pečiatky. Je to preto, že stĺpec „dátum_nájmu“ ukladá hodnoty ako časovú pečiatku.

Filtrujte rozsah dátumov

Druhou bežnou operáciou je filtrovanie údajov na základe konkrétneho rozsahu dátumov. Predpokladajme napríklad, že chceme získať nájomné, ku ktorým došlo medzi májom 2005 a júnom 2005.

Dotaz môžeme spustiť nasledovne:

VYBRAŤ
*
OD
prenájom
KDE
dátum_nájmu BETWEEN '2005-04-01 00:00:00' A '2005-06-01 00:00:00' ;

V tomto prípade používame operátor AND na spojenie dvoch hodnôt. Klauzula WHERE sa používa tam, kde akákoľvek hodnota zo stĺpca „dátum_nájmu“ musí byť medzi týmito dvoma rozsahmi.

Príklad výstupu je nasledujúci:

Filtrujte komponent dátumu

V iných prípadoch namiesto použitia rozsahu dátumov pomocou doslovných hodnôt môžeme z hodnoty extrahovať konkrétne komponenty dátumu a na základe toho filtrovať.

Napríklad namiesto zadania od 2005-04-01 a 2005-06-01 môžeme extrahovať mesiac máj a filtrovať všetky údaje, ktoré sú v danom mesiaci.

V MySQL môžeme na dosiahnutie tohto cieľa použiť funkciu, ako je funkcia MONTH(), ako je znázornené v nasledujúcom príklade:

VYBRAŤ
*
OD
prenájom
KDE
MESIAC ( dátum_nájmu ) = 5 ;

V tomto prípade MONTH(dátum_nájmu) extrahuje časť mesiaca z dátumu. Potom môžeme túto hodnotu použiť na filtrovanie, kde sa hodnota rovná 5, máj.

Záver

V tomto návode sme sa dozvedeli o jednej z najzákladnejších a najbežnejších úloh v SQL, kde filtrujeme údaje na základe hodnoty dátumu. Naučili sme sa, ako extrahovať rôzne komponenty z dátumu a použiť ich na filtrovanie dátumu a ďalšie.