SQL-datumfiltrering

Sql Datumfiltrering



Att filtrera data baserat på datumvärdet är en vanlig företeelse när man arbetar med databaser. Till exempel kan det tillåta oss att hämta data från en specifik tidsram, aggregera resultaten baserat på ett givet datum, identifiera trendmönster över tid och andra tidsrelaterade operationer.

Det är därför en viktig färdighet för alla databasutvecklare. SQL ger oss olika verktyg för att filtrera datumen inom en given datamängd.







Följ med oss ​​i det här inlägget när vi utforskar de olika metoderna och teknikerna som vi kan använda för att filtrera datumen i SQL-världen.



Förutsättningar:

Innan vi dyker in i de praktiska exemplen och tillämpningarna, låt oss dela upp vad du behöver för den här.



I det här inlägget kommer vi att försöka följa de metoder som kan tillämpas på nästan alla SQL-databaser. Men i demonstrationssyfte använder vi MySQL version 8 med Sakila-exempeldatabasen.





Du är dock fri att ladda ner och använda vilken datauppsättning du vill. Vi kommer att se till att påpeka om en tillhandahållen metod kan fungera i andra databaser och tillhandahålla ett alternativ om något finns.

Filtrera ett specifikt datum

Den mest grundläggande datumfiltreringsoperationen är där vi behöver hämta en post eller flera poster för ett specifikt datum.



I ett sådant fall kan vi använda WHERE-satsen följt av datumkolumnen och det faktiska datumvärdet som vi vill hämta.

Anta till exempel att vi vill ta reda på hyresposterna som inträffade den 24 maj 2005. Vi kan köra en fråga enligt följande:

VÄLJ *
FRÅN uthyrning
WHERE rental_date = '2005-05-24 23:03:39' ;

I det här fallet anger vi datumet som vi vill filtrera som ett tidsstämpelvärde. Detta beror på att kolumnen 'rental_date' lagrar värdena som tidsstämpel.

Filtrera datumintervallet

Den andra vanliga operationen är att filtrera data baserat på ett specifikt datumintervall. Anta till exempel att vi vill hämta de uthyrningar som skedde mellan maj 2005 och juni 2005.

Vi kan köra frågan enligt följande:

VÄLJ
*
FRÅN
uthyrning
VAR
rental_date MELLAN '2005-04-01 00:00:00' OCH '2005-06-01 00:00:00' ;

I det här fallet använder vi AND-operatorn för att sammanfoga två värden. WHERE-satsen används där alla värden från kolumnen 'rental_date' måste ligga mellan de två intervallen.

Ett exempel på utdata är följande:

Filtrera datumkomponenten

I andra fall, istället för att använda ett datumintervall med de bokstavliga värdena, kan vi extrahera de specifika datumkomponenterna från värdet och filtrera baserat på det.

Till exempel, istället för att ange från 2005-04-01 och 2005-06-01, kan vi extrahera maj månad och filtrera all data som ligger inom den månaden.

I MySQL kan vi använda en funktion som MONTH()-funktionen för att uppnå detta som visas i följande exempel:

VÄLJ
*
FRÅN
uthyrning
VAR
MÅNAD ( uthyrningsdatum ) = 5 ;

I det här fallet extraherar MONTH(rental_date) månadsdelen från datumet. Sedan kan vi använda det här värdet för att filtrera där värdet är lika med 5, maj.

Slutsats

I den här handledningen lärde vi oss om en av de mest grundläggande och vanliga uppgifterna i SQL där vi filtrerar data baserat på datumvärdet. Vi lärde oss hur man extraherar de olika komponenterna från ett datum och använder det för att filtrera datumet med mera.