Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में आज और कल की तारीख के रिकॉर्ड कैसे प्राप्त करें?

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 आदि उपयोग कर सकते हैं
  1. - MySQL में NOW() से वर्तमान दिनांक से पहले की तिथि वाले रिकॉर्ड चुनें

    WHERE date_column < NOW() या CURDATE() का उपयोग करके वर्तमान दिनांक/समय से पहले की तिथि वाले रिकॉर्ड चुनें। टेबल बनाएं mysql> CREATE TABLE DemoTable1877 (DueDate DATETIME); डेटा डालें mysql> INSERT INTO DemoTable1877 VALUES(2019-12-10), (2019-12-05), (2019-12-07), (2019-12-09); वर्तमान दिना

  1. - MySQL में UNIX_TIMESTAMP(NOW()) से कॉलम में वर्तमान टाइमस्टैम्प सेट करें

    UNIX_TIMESTAMP() या UNIX_TIMESTAMP(NOW()) फ़ंक्शन का उपयोग करके वर्तमान समय को यूनिक्स टाइमस्टैम्प (सेकंड, 1970 से) के रूप में पूर्णांक कॉलम में संग्रहीत करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1894 ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, DueTime INT ); डेटा डालें (DueTime N

  1. - MySQL WHERE क्लॉज़ में ड्यू डेट और करंट डेट रिकॉर्ड्स की जांच करने की शर्त

    ऐसी शर्तों की जांच के लिए, MySQL में IF() फ़ंक्शन का उपयोग करें। उदाहरण आइए एक टेबल बनाते हैं: mysql> create table demo89 ( duedate date ); Query OK, 0 rows affected (0.78 sec) उदाहरण इन्सर्ट कमांड की मदद से टेबल में कुछ रिकॉर्ड डालें: mysql> insert into demo89 values(2020-01-10); Query OK,