Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

किसी ऐसे फ़ील्ड की गणना करने के लिए संग्रहीत दिनांक फ़ील्ड का उपयोग करना जो बीते दिनों की वर्तमान संख्या की गणना करता है

आप 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL कोडनिर्देशक में किसी ऑब्जेक्ट में परिणाम जोड़ता है

  2. MySQL:एक साधारण टेबल पर समवर्ती अद्यतन (थ्रेड्स के माध्यम से)

  3. MySQL जहां क्वेरी में - मैच द्वारा ऑर्डर करें

  4. हाइबरनेट MySQL के लिए डेटाबेस क्यों नहीं बना रहा है?

  5. विदेशी कुंजी संदर्भात्मक कार्रवाई को कैसे बदलें? (व्यवहार)