Как добавить новую запись в таблицу БД с увеличением DATETIME на N лет от содержимого другой ячейки в записи
При разработке приложения для колледжа столкнулись с проблемой - "Каждый преподаватель имеет дату последней аттестации, и ещё имеет поле следующей аттестации, которое желательно было бы просчитывать при добавлении даты последней аттестации. след. аттестация через 5 лет."
Понимаю, что это можно сделать в приложении, но хотелось бы на уровне БД.
Ответы (1 шт):
Автор решения: Артур Франк
→ Ссылка
Можно решить процедурой:
CREATE PROCEDURE `new_procedure`
(
IN _name VARCHAR(100),
IN _surname VARCHAR(100),
IN _start_data DATETIME
)
BEGIN
INSERT INTO table_name (name,surname, start_data, end_data) VALUE (_name, _surname, _start_data, DATE_ADD(_start_data, INTERVAL 5 YEAR));
END
DATE_ADD(_start_data, INTERVAL 5 YEAR)
DATE_ADD - функция выполняющая сложение
_start_data - дата к которой нужно прибавить.
INTERVAL 5 YEAR - Сколько лет нужно прибавить.
Данная процедура будет вызываться так:
CALL new_procedure("Иван","Иванов",DD-MM-YYYY)