MySQL में वर्तमान तारीख (CURDATE()) और पिछले दिन (DATE_SUB(CURDATE(), INTERVAL 1 DAY)) के रिकॉर्ड एक साथ प्राप्त करने का तरीका।
सिंटैक्स
SELECT * FROM yourTableName
WHERE yourDateColumn = CURDATE()
OR yourDateColumn = DATE_SUB(CURDATE(), INTERVAL 1 DAY);
उदाहरण के साथ समझें
टेबल बनाएं:
CREATE TABLE ProductDemo (
Id INT NOT NULL AUTO_INCREMENT,
ProductName VARCHAR(20),
ProductOfferDate DATETIME,
PRIMARY KEY(Id)
);
रिकॉर्ड डालें:
INSERT INTO ProductDemo(ProductName, ProductOfferDate) VALUES('Product-11', '2017-05-21');
INSERT INTO ProductDemo(ProductName, ProductOfferDate) VALUES('Product-22', '2019-01-15');
INSERT INTO ProductDemo(ProductName, ProductOfferDate) VALUES('Product-21', '2019-01-14');
INSERT INTO ProductDemo(ProductName, ProductOfferDate) VALUES('Product-91', '2018-10-23');
INSERT INTO ProductDemo(ProductName, ProductOfferDate) VALUES('Product-133', '2019-01-24');
सभी रिकॉर्ड देखें:
SELECT * FROM ProductDemo;
आउटपुट:
+----+-------------+---------------------+
| Id | ProductName | ProductOfferDate |
+----+-------------+---------------------+
| 1 | Product-11 | 2017-05-21 00:00:00 |
| 2 | Product-22 | 2019-01-15 00:00:00 |
| 3 | Product-21 | 2019-01-14 00:00:00 |
| 4 | Product-91 | 2018-10-23 00:00:00 |
| 5 | Product-133 | 2019-01-24 00:00:00 |
+----+-------------+---------------------+
आज और कल के रिकॉर्ड पाने का क्वेरी
(मान लें आज 2019-01-15 है)
SELECT * FROM ProductDemo
WHERE ProductOfferDate = CURDATE()
OR ProductOfferDate = DATE_SUB(CURDATE(), INTERVAL 1 DAY);
परिणाम:
+----+-------------+---------------------+
| Id | ProductName | ProductOfferDate |
+----+-------------+---------------------+
| 2 | Product-22 | 2019-01-15 00:00:00 |
| 3 | Product-21 | 2019-01-14 00:00:00 |
+----+-------------+---------------------+
वैकल्पिक तरीके
IN ऑपरेटर के साथ (अधिक संक्षिप्त)
SELECT * FROM ProductDemo
WHERE ProductOfferDate IN (CURDATE(), DATE_SUB(CURDATE(), INTERVAL 1 DAY));
BETWEEN के साथ (रेंज के लिए)
SELECT * FROM ProductDemo
WHERE ProductOfferDate BETWEEN DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND CURDATE();
महत्वपूर्ण नोट्स
CURDATE()केवल तारीख लौटाता है (समय 00:00:00)- यदि कॉलम
DATETIMEहै, तो समय भाग 00:00:00 होना चाहिए - यदि समय भी संग्रहीत है, तो
DATE(yourColumn)उपयोग करें:WHERE DATE(ProductOfferDate) IN (...) INTERVAL 1 DAYकी जगहINTERVAL 2 DAY,INTERVAL 1 WEEKआदि उपयोग कर सकते हैं