आप CURDATE()
. के बारे में पढ़ना पसंद कर सकते हैं और DATEDIFF()
फ़ंक्शन (और MySQL में अन्य फ़ंक्शन जो भविष्य में आपके लिए उपयोगी हो सकते हैं) यहाँ:https://dev.mysql.com/doc/refman/5.7/hi/date-and-time-functions.html#function_datediff
SELECT *, DATEDIFF(CURDATE(), mydatefield) AS days_since
FROM MyTable;
यदि आप इसे तालिका में अंतर्निहित करना चाहते हैं, तो आप एक दृश्य का उपयोग कर सकते हैं:
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.