Я хочу вставить разницу(в годах) между датой присоединения и текущей датой и добавить ее в новый столбец для каждой строки

#mysql #database

Вопрос:

 create table emp_details(
empId varchar(10),
empName varchar(20),
designation varchar(30),
band varchar(5),
joiningDate date,
);

insert into salary_struct.emp_details values
('E0001','abc','Trainee software engineer','E','2021-06-01'),
('C2002','xyz','senior business analyst','C2','2017-02-15');
 

Как добавить новый столбец под названием «опыт» в существующую таблицу, в которую я хочу добавить разницу между датой присоединения и текущей датой в годах?

Комментарии:

1. добавить новый столбец ИЗМЕНИТЬ ТАБЛИЦУ ДОБАВИТЬ СТОЛБЕЦ добавить разницу между датой присоединения и текущей датой в годах ОБНОВЛЕНИЕ и МЕТКА ВРЕМЕНИ(ГОД, …)

2. Должно ли новое значение столбца быть статическим (рассчитанное сегодня, оно останется неизменным завтра, даже если разница увеличится) или динамическим (всегда равным фактической разнице)?

Ответ №1:

Поскольку experience столбец является динамически вычисляемым значением, вместо того, чтобы хранить значение в новом столбце бд, вы можете легко получить результат в выбранном столбце

 select empId ,
empName ,
designation ,
band ,
joiningDate ,
DATEDIFF(curdate(), joiningDate)
from emp_details experience