Misschien vind je het leuk om te lezen over de CURDATE()
en DATEDIFF()
functies (en andere functies in MySQL die in de toekomst nuttig voor u kunnen zijn) hier: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;
Als u dit in de tabel wilt ingebouwd hebben, kunt u een VIEW gebruiken:
CREATE VIEW MyView AS
SELECT *, DATEDIFF(CURDATE(), mydatefield) AS days_since
FROM MyTable;
MySQL 5.7 ondersteunt gegenereerde kolommen waar u een virtuele kolom kunt toevoegen op basis van een uitdrukking, maar dit werkt in dit geval niet omdat het gebruik van een niet-deterministische functie zoals CURDATE() in dergelijke uitdrukkingen niet is toegestaan.
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.