У меня есть таблица 'зарплаты' с полем 2 временных меток, from_date и to_date
no | salary | from_date | to_date |
------------------------------------------
1 | 30000 | 1995-12-03 | 1996-12-02 |
2 | 31000 | 1996-12-02 | 1997-12-02 |
3 | 32000 | 1997-12-02 | 1998-12-02 |
4 | 35000 | 1998-12-02 | 1999-12-02 |
5 | 37000 | 1999-12-02 | 2000-12-01 |
6 | 38000 | 2000-12-01 | 2001-12-01 |
Я хочу получить зарплату в 2000 году, поэтому результатом должны быть строки 5 и 6. Имеется синтаксис, который я использовал:
SELECT * FROM salaries
WHERE DATE_FORMAT(salaries.from_date,'%Y') <= DATE_FORMAT('2000-06-20','%Y')
AND DATE_FORMAT(salaries.to_date,'%Y') >= DATE_FORMAT('2000-06-20','%Y')
5 | 37000 | 1999-12-02 | 2000-12-01 |
6 | 38000 | 2000-12-01 | 2001-12-01 |
На самом деле запрос работает хорошо; но есть ли другие решения для запросов? какое решение для запроса вы предложили?