Извлечение данных, которые попадают в диапазон дат в SQL

#mysql #sql

Вопрос:

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

Таблица продуктов, содержащая столбец с датой награждения:

  -------------- 
| AwardedDate |
 -------------- 
| 2021-01-07   |
| 2023-01-07   |
| 2026-07-19   |
 -------------- 
 

И таблица FiscalYear, которая содержит 3 столбца примечаний:

  ------ ------------ ------------ 
| Name | StartDate  |  EndDate   |
 ------ ------------ ------------ 
| FY15 | 2014-10-01 | 2015-09-30 |
| FY16 | 2015-10-01 | 2016-09-30 |
| FY17 | 2016-10-01 | 2017-09-30 |
| ...  | ...        | ...        |
 ------ ------------ ------------ 
 

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

Например, если моя дата награждения 2016-11-27, запрос должен вернуть 17 ФГ

Я новичок в SQL и попробовал что-то вроде этого:

 SELECT fy.Name
FROM Products
LEFT JOIN FiscalYears fy ON 
 

Но я еще не знаю, как сравнивать даты. Спасибо

Ответ №1:

Вы можете использовать BETWEEN :

 select p.*, fy.NAME
from Products p
    left join FiscalYear fy ON p.AwardedDate between fy.StartDate and fy.EndDate