SQL-datofiltrering

Sql Datofiltrering



Filtrering af data baseret på datoværdien er en almindelig hændelse, når du arbejder med databaser. For eksempel kan det give os mulighed for at hente data fra en bestemt tidsramme, aggregere resultaterne baseret på en given dato, identificere trendmønstre over tid og andre tidsrelaterede operationer.

Det er derfor en vigtig færdighed for enhver databaseudvikler. SQL giver os forskellige værktøjer til at filtrere datoerne i et givet datasæt.







Slut dig til os i dette indlæg, mens vi udforsker de forskellige metoder og teknikker, som vi kan bruge til at filtrere datoerne i SQL-verdenen.



Forudsætninger:

Inden vi dykker ned i de praktiske eksempler og applikationer, lad os nedbryde, hvad du har brug for til denne.



I dette indlæg vil vi forsøge at overholde de metoder, der kan gælde for næsten alle SQL-databaser. Men til demonstrationsformål bruger vi MySQL version 8 med Sakila-eksempeldatabasen.





Du er dog fri til at downloade og bruge ethvert datasæt, du ønsker. Vi vil være sikker på at påpege, om en givet metode kan fungere i andre databaser og give et alternativ, hvis nogen.

Filtrer en bestemt dato

Den mest grundlæggende datofiltreringsoperation er, hvor vi skal hente en post eller flere poster for en bestemt dato.



I et sådant tilfælde kan vi bruge WHERE-sætningen efterfulgt af datokolonnen og den faktiske datoværdi, som vi ønsker at hente.

Antag f.eks., at vi ønsker at finde ud af de lejeregistreringer, der fandt sted den 24. maj 2005. Vi kan køre en forespørgsel som følger:

VÆLG *
FRA udlejning
WHERE lejedato = '2005-05-24 23:03:39' ;

I dette tilfælde angiver vi den dato, som vi ønsker at filtrere, som en tidsstempelværdi. Dette skyldes, at kolonnen 'rental_date' gemmer værdierne som tidsstempel.

Filtrer datointervallet

Den anden almindelige operation er at filtrere data baseret på et bestemt datointerval. Antag for eksempel, at vi ønsker at hente de lejer, der fandt sted mellem maj 2005 og juni 2005.

Vi kan køre forespørgslen som følger:

VÆLG
*
FRA
leje
HVOR
leje_dato MELLEM '2005-04-01 00:00:00' OG '2005-06-01 00:00:00' ;

I dette tilfælde bruger vi AND-operatoren til at forbinde to værdier. WHERE-udtrykket bruges, hvor enhver værdi fra kolonnen 'rental_date' skal være mellem de to intervaller.

Et eksempel på output er som følger:

Filtrer datokomponenten

I andre tilfælde kan vi i stedet for at bruge et datointerval ved hjælp af de bogstavelige værdier udtrække de specifikke datokomponenter fra værdien og filtrere baseret på det.

For eksempel, i stedet for at angive fra 2005-04-01 og 2005-06-01, kan vi udtrække maj måned og filtrere alle data, der er inden for den måned.

I MySQL kan vi bruge en funktion som MONTH()-funktionen for at opnå dette som vist i følgende eksempel:

VÆLG
*
FRA
leje
HVOR
MÅNED ( leje_dato ) = 5 ;

I dette tilfælde udtrækker MONTH(leje_dato) månedsdelen fra datoen. Derefter kan vi bruge denne værdi til at filtrere, hvor værdien er lig med 5, maj.

Konklusion

I denne tutorial lærte vi om en af ​​de mest grundlæggende og almindelige opgaver i SQL, hvor vi filtrerer dataene baseret på datoværdien. Vi lærte at udtrække de forskellige komponenter fra en dato og bruge den til at filtrere datoen med mere.