Фильтрация даты SQL

Fil Tracia Daty Sql



Фильтрация данных по значению даты — обычное явление при работе с базами данных. Например, это может позволить нам получать данные за определенный период времени, агрегировать результаты на основе заданной даты, определять закономерности тенденций с течением времени и выполнять другие операции, связанные со временем.

Поэтому это важный навык для любого разработчика баз данных. SQL предоставляет нам различные инструменты для фильтрации дат в данном наборе данных.







Присоединяйтесь к нам в этом посте, поскольку мы исследуем различные методы и приемы, которые мы можем использовать для фильтрации дат в мире SQL.



Предпосылки:

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



В этом посте мы постараемся придерживаться методов, применимых практически ко всем базам данных SQL. Однако в демонстрационных целях мы используем MySQL версии 8 с образцом базы данных Sakila.





Однако вы можете свободно загружать и использовать любой набор данных, который пожелаете. Мы обязательно укажем, может ли предоставленный метод работать в других базах данных, и предоставим альтернативу, если таковая имеется.

Фильтровать конкретную дату

Самая базовая операция фильтрации по дате — это когда нам нужно получить запись или несколько записей за определенную дату.



В таком случае мы можем использовать предложение WHERE, за которым следует столбец даты и фактическое значение даты, которое мы хотим получить.

Например, предположим, что мы хотим найти записи об аренде, произошедшие 24 мая 2005 г. Мы можем выполнить запрос следующим образом:

ВЫБИРАТЬ *
ОТ аренда
ГДЕ rental_date = '2005-05-24 23:03:39' ;

В этом случае мы указываем дату, которую хотим отфильтровать, как значение временной метки. Это связано с тем, что в столбце «rental_date» значения хранятся как отметка времени.

Фильтрация диапазона дат

Вторая распространенная операция — фильтрация данных на основе определенного диапазона дат. Например, предположим, что мы хотим получить данные об аренде, произошедшей в период с мая 2005 г. по июнь 2005 г.

Мы можем запустить запрос следующим образом:

ВЫБИРАТЬ
*
ОТ
аренда
ГДЕ
rent_date МЕЖДУ '2005-04-01 00:00:00' И '2005-06-01 00:00:00' ;

В этом случае мы используем оператор AND для объединения двух значений. Предложение WHERE используется там, где любое значение из столбца «rental_date» должно находиться между двумя диапазонами.

Пример вывода выглядит следующим образом:

Фильтрация компонента даты

В других случаях вместо использования диапазона дат с использованием литеральных значений мы можем извлечь конкретные компоненты даты из значения и отфильтровать их на основе этого.

Например, вместо указания 01 апреля 2005 г. и 01 июня 2005 г. мы можем извлечь май месяц и отфильтровать любые данные, находящиеся в пределах этого месяца.

В MySQL для достижения этой цели мы можем использовать такую ​​функцию, как функция MONTH(), как показано в следующем примере:

ВЫБИРАТЬ
*
ОТ
аренда
ГДЕ
МЕСЯЦ ( аренда_дата ) '=' 5 ;

В этом случае МЕСЯЦ(rental_date) извлекает часть месяца из даты. Затем мы можем использовать это значение для фильтрации, где значение равно 5, май.

Заключение

В этом руководстве мы узнали об одной из самых фундаментальных и распространенных задач в SQL, где мы фильтруем данные на основе значения даты. Мы научились извлекать различные компоненты из даты и использовать их для фильтрации даты и многого другого.