Може да искате да прочетете за CURDATE()
и DATEDIFF()
функции (и други функции в MySQL, които може да са полезни за вас в бъдеще) тук:https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_datediff
SELECT *, DATEDIFF(CURDATE(), mydatefield) AS days_since
FROM MyTable;
Ако искате това да бъде вградено в таблицата, можете да използвате VIEW:
CREATE VIEW MyView AS
SELECT *, DATEDIFF(CURDATE(), mydatefield) AS days_since
FROM MyTable;
MySQL 5.7 поддържа генерирани колони където можете да добавите виртуална колона въз основа на израз, но това не работи в този случай, защото използването на недетерминирана функция като CURDATE() не е позволено в такива изрази.
ALTER TABLE MyTable ADD COLUMN days_since INT AS (DATEDIFF(CURDATE(), mydatefield));
ERROR 3102 (HY000): Expression of generated column 'days_since' contains a disallowed function.