Możesz przeczytać o CURDATE()
i DATEDIFF()
funkcje (i inne funkcje w MySQL, które mogą być przydatne w przyszłości) tutaj:https://dev.mysql.com/doc/refman/5.7/en/data-i-godzina-funkcje.html#function_datediff
SELECT *, DATEDIFF(CURDATE(), mydatefield) AS days_since
FROM MyTable;
Jeśli chcesz, aby było to wbudowane w stół, możesz użyć WIDOK:
CREATE VIEW MyView AS
SELECT *, DATEDIFF(CURDATE(), mydatefield) AS days_since
FROM MyTable;
MySQL 5.7 obsługuje wygenerowane kolumny gdzie możesz dodać wirtualną kolumnę na podstawie wyrażenia, ale to nie działa w tym przypadku, ponieważ użycie niedeterministycznej funkcji, takiej jak CURDATE(), nie jest dozwolone w takich wyrażeniach.
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.