SQL-datofiltrering

Sql Datofiltrering



Filtrering av data basert på datoverdien er en vanlig forekomst når du arbeider med databaser. For eksempel kan det tillate oss å hente data fra en bestemt tidsramme, aggregere resultatene basert på en gitt dato, identifisere trendmønstre over tid og andre tidsrelaterte operasjoner.

Det er derfor en viktig ferdighet for enhver databaseutvikler. SQL gir oss ulike verktøy for å filtrere datoene innenfor et gitt datasett.







Bli med oss ​​i dette innlegget mens vi utforsker de ulike metodene og teknikkene som vi kan bruke for å filtrere datoene i SQL-verdenen.



Forutsetninger:

Før vi dykker ned i de praktiske eksemplene og applikasjonene, la oss dele ned hva du trenger for denne.



I dette innlegget vil vi prøve å følge metodene som kan gjelde for nesten alle SQL-databaser. For demonstrasjonsformål bruker vi imidlertid MySQL versjon 8 med Sakila-eksempeldatabasen.





Du står imidlertid fritt til å laste ned og bruke et hvilket som helst datasett du ønsker. Vi vil være sikker på å påpeke om en gitt metode kan fungere i andre databaser og gi et alternativ hvis noen.

Filtrer en bestemt dato

Den mest grunnleggende datofiltreringsoperasjonen er hvor vi trenger å hente en post eller flere poster for en bestemt dato.



I et slikt tilfelle kan vi bruke WHERE-leddet etterfulgt av datokolonnen og den faktiske datoverdien som vi ønsker å hente.

Anta for eksempel at vi ønsker å finne ut leiepostene som fant sted 24. mai 2005. Vi kan kjøre en spørring som følger:

PLUKKE UT *
FRA utleie
WHERE rental_date = '2005-05-24 23:03:39' ;

I dette tilfellet oppgir vi datoen vi ønsker å filtrere som en tidsstempelverdi. Dette er fordi «rental_date»-kolonnen lagrer verdiene som tidsstempel.

Filtrer datoperioden

Den andre vanlige operasjonen er å filtrere dataene basert på en bestemt datoperiode. Anta for eksempel at vi ønsker å hente utleiene som fant sted mellom mai 2005 og juni 2005.

Vi kan kjøre spørringen som følger:

PLUKKE UT
*
FRA
utleie
HVOR
leie_dato MELLOM '2005-04-01 00:00:00' OG '2005-06-01 00:00:00' ;

I dette tilfellet bruker vi AND-operatoren for å slå sammen to verdier. WHERE-leddet brukes der enhver verdi fra «rental_date»-kolonnen må være mellom de to områdene.

Et eksempelutgang er som følger:

Filtrer datokomponenten

I andre tilfeller, i stedet for å bruke en datoperiode med de bokstavelige verdiene, kan vi trekke ut de spesifikke datokomponentene fra verdien og filtrere basert på det.

For eksempel, i stedet for å spesifisere fra 2005-04-01 og 2005-06-01, kan vi trekke ut mai måned og filtrere alle data som er innenfor den måneden.

I MySQL kan vi bruke en funksjon som MONTH()-funksjonen for å oppnå dette som vist i følgende eksempel:

PLUKKE UT
*
FRA
utleie
HVOR
MÅNED ( leie_dato ) = 5 ;

I dette tilfellet trekker MONTH(rental_date) ut månedsdelen fra datoen. Deretter kan vi bruke denne verdien til å filtrere der verdien er lik 5, mai.

Konklusjon

I denne opplæringen lærte vi om en av de mest grunnleggende og vanlige oppgavene i SQL der vi filtrerer dataene basert på datoverdien. Vi lærte å trekke ut de ulike komponentene fra en dato og bruke den til å filtrere datoen med mer.