Как мне удалить сотрудников, которым исполнилось 18 лет — mysql?

#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: