वर्तमान दिनांक और संग्रहीत दिनांक के बीच अंतर (दिनों में) निकालना
MySQL में DATEDIFF(date1, date2) फ़ंक्शन दो दिनांकों के बीच दिनों की संख्या लौटाता है (date1 - date2)। यदि दिनांक स्ट्रिंग (VARCHAR) में संग्रहीत है, तो पहले STR_TO_DATE से बदलें।
सिंटैक्स
SELECT DATEDIFF(CURDATE(), STR_TO_DATE(yourColumnName, '%d-%m-%Y')) AS DaysDiff FROM yourTableName;
उदाहरण: VARCHAR दिनांक कॉलम
CREATE TABLE DateDifferenceDemo (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ArrivalDate VARCHAR(100)
);
INSERT INTO DateDifferenceDemo (ArrivalDate) VALUES
('12-10-2011'), ('01-12-2013'), ('31-10-2014'),
('12-04-2016'), ('20-08-2018'), ('11-03-2019');
क्वेरी
SELECT DATEDIFF(CURDATE(), STR_TO_DATE(ArrivalDate, '%d-%m-%Y')) AS NumberOfDays FROM DateDifferenceDemo;
आउटपुट (मान लें आज 2019-03-12 है)
+--------------+ | NumberOfDays | +--------------+ | 2708 | | 1927 | | 1593 | | 1064 | | 204 | | 1 | +--------------+
फॉर्मेट स्पेसिफायर
%d- दिन (01-31)%m- महीना (01-12)%Y- 4-अंकीय वर्ष- इनपुट फॉर्मेट से सटीक मिलान आवश्यक है।
यदि कॉलम पहले से DATE/DATETIME टाइप है
SELECT DATEDIFF(CURDATE(), yourDateColumn) AS DaysDiff FROM yourTable;
STR_TO_DATE की आवश्यकता नहीं।
नोट
DATEDIFFकेवल दिनांक भाग मानता है, समय भाग अनदेखा करता है।- नकारात्मक परिणाम का अर्थ है संग्रहीत दिनांक भविष्य में है।
- समय भाग सहित सटीक अंतर के लिए
TIMESTAMPDIFF(SECOND, ...)उपयोग करें।