#mysql #sql #datetime #where-clause #date-arithmetic
#mysql #sql #дата и время #where-предложение #дата-арифметика
Вопрос:
SELECT birthday
FROM employees
WHERE ((DATEDIFF(Year,birthday())>'18')
Комментарии:
1.
birthday
это столбец, а не функция.DATEDIFF
имеет 3 аргумента, а не 2.2. Вы должны указать ошибку или неожиданное поведение, с которым вы столкнулись. Структура таблицы также помогла бы.
3. @madtyn Удаление уже выполнено успешно, но оно удаляет значение единицы измерения, хотя есть несколько сотрудников, которым исполнилось 18 лет. У вас есть представление об ошибке?
Ответ №1:
Вы можете использовать арифметику даты:
select * from employee where birthdate interval 18 year <= current_date
Это отфильтровывает сотрудников, которым на сегодняшний день исполнилось 18 лет или больше.
Ответ №2:
Вы можете использовать функцию DATE_SUB:
SELECT birthday
FROM employees
WHERE birthday < DATE_SUB(curdate(), interval 18 year);