DATE_SUB() और NOW() का उपयोग करके वर्तमान दिनांक से सापेक्ष दिनांक रेंज बनाएँ।
सिंटैक्स:
SELECT * FROM yourTable
WHERE yourDateTimeCol BETWEEN DATE_SUB(DATE(NOW()), INTERVAL 2 DAY)
AND DATE_SUB(DATE(NOW()), INTERVAL 1 DAY);
एक टेबल बनाते हैं:
CREATE TABLE get2daysAgoDemo (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(20),
PostDateTime DATETIME
);
रिकॉर्ड डालें (वर्तमान दिनांक 2019-02-15 मानकर):
INSERT INTO get2daysAgoDemo (Name, PostDateTime) VALUES ('Larry', NOW());
INSERT INTO get2daysAgoDemo (Name, PostDateTime) VALUES ('Mike', '2019-02-13');
INSERT INTO get2daysAgoDemo (Name, PostDateTime) VALUES ('Sam', '2019-01-31');
INSERT INTO get2daysAgoDemo (Name, PostDateTime) VALUES ('Bob', '2019-02-14');
INSERT INTO get2daysAgoDemo (Name, PostDateTime) VALUES ('David', '2019-02-12');
INSERT INTO get2daysAgoDemo (Name, PostDateTime) VALUES ('Carol', '2019-02-11');
पिछले 2 दिन (13 और 14 फरवरी) के रिकॉर्ड:
SELECT * FROM get2daysAgoDemo
WHERE PostDateTime BETWEEN DATE_SUB(DATE(NOW()), INTERVAL 2 DAY)
AND DATE_SUB(DATE(NOW()), INTERVAL 1 DAY);
आउटपुट
+----+------+---------------------+ | Id | Name | PostDateTime | +----+------+---------------------+ | 2 | Mike | 2019-02-13 00:00:00 | | 4 | Bob | 2019-02-14 00:00:00 | +----+------+---------------------+
नोट: DATE(NOW()) समय भाग को हटाकर केवल दिनांक देता है। INTERVAL n DAY दिनांक अंकगणित के लिए मानक तरीका है।