Как добавить новую запись в таблицу БД с увеличением 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)

→ Ссылка