SQL филтриране по дата

Sql Filtrirane Po Data



Филтрирането на данните въз основа на стойността на датата е често срещано явление при работа с бази данни. Например, може да ни позволи да извлечем данните от конкретна времева рамка, да обобщим резултатите въз основа на дадена дата, да идентифицираме моделите на тенденции във времето и други операции, свързани с времето.

Следователно това е важно умение за всеки разработчик на бази данни. SQL ни предоставя различни инструменти за филтриране на датите в даден набор от данни.







Присъединете се към нас в тази публикация, докато изследваме различните методи и техники, които можем да използваме за филтриране на датите в света на SQL.



Предпоставки:

Преди да се потопим в практическите примери и приложения, нека разбием какво ви трябва за това.



В тази публикация ще се опитаме да се придържаме към методите, които могат да се прилагат към почти всички SQL бази данни. Въпреки това, за демонстрационни цели, ние използваме MySQL версия 8 с примерната база данни Sakila.





Вие обаче сте свободни да изтеглите и използвате всеки набор от данни, който желаете. Ние със сигурност ще посочим дали даден метод може да работи в други бази данни и ще предоставим алтернатива, ако има такава.

Филтриране на конкретна дата

Най-елементарната операция за филтриране на дата е, когато трябва да извлечем запис или множество записи за конкретна дата.



В такъв случай можем да използваме клаузата WHERE, последвана от колоната с дата и действителната стойност на датата, която искаме да извлечем.

Например, да предположим, че искаме да открием записите за наемане, настъпили на 24 май 2005 г. Можем да изпълним запитване, както следва:

ИЗБЕРЕТЕ *
ОТ наем
WHERE rental_date = '2005-05-24 23:03:39' ;

В този случай ние предоставяме датата, която искаме да филтрираме като стойност на времево клеймо. Това е така, защото колоната „rental_date“ съхранява стойностите като клеймо за време.

Филтрирайте периода от време

Втората обичайна операция е филтриране на данните въз основа на конкретен период от време. Да предположим например, че искаме да извлечем наемите, настъпили между май 2005 г. и юни 2005 г.

Можем да изпълним заявката, както следва:

ИЗБЕРЕТЕ
*
ОТ
отдаване под наем
КЪДЕТО
наемна_дата МЕЖДУ '2005-04-01 00:00:00' И '2005-06-01 00:00:00' ;

В този случай използваме оператора И, за да обединим две стойности. Клаузата WHERE се използва, когато всяка стойност от колоната „rental_date“ трябва да бъде между двата диапазона.

Примерен изход е както следва:

Филтрирайте компонента за дата

В други случаи, вместо да използваме период от време, използвайки буквалните стойности, можем да извлечем конкретните компоненти на датата от стойността и да филтрираме въз основа на това.

Например, вместо да посочваме от 2005-04-01 и 2005-06-01, можем да извлечем месец май и да филтрираме всички данни, които са в рамките на този месец.

В MySQL можем да използваме функция като функцията MONTH(), за да постигнем това, както е показано в следния пример:

ИЗБЕРЕТЕ
*
ОТ
отдаване под наем
КЪДЕТО
МЕСЕЦ ( наемна_дата ) = 5 ;

В този случай MONTH(rental_date) извлича частта от месеца от датата. След това можем да използваме тази стойност, за да филтрираме, когато стойността е равна на 5, май.

Заключение

В този урок научихме за една от най-фундаменталните и често срещани задачи в SQL, където филтрираме данните въз основа на стойността на датата. Научихме как да извличаме различните компоненти от дата и да ги използваме, за да филтрираме датата и други.