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

MySQL में 90 दिन पहले से अब तक की डेट वाले रिकॉर्ड कैसे चुनें?

INTERVAL और BETWEEN से रिलेटिव डेट रेंज क्वेरी

वर्तमान तारीख से 90 दिन पहले से लेकर आज तक की डेट वाले रिकॉर्ड खोजने के लिए INTERVAL के साथ BETWEEN का उपयोग करें।

टेबल बनाना और डेटा इन्सर्ट करना

CREATE TABLE DemoTable (DueDate DATE);

INSERT INTO DemoTable VALUES('2019-07-10');
INSERT INTO DemoTable VALUES('2019-09-02');
INSERT INTO DemoTable VALUES('2019-06-01');
INSERT INTO DemoTable VALUES('2019-05-10');
INSERT INTO DemoTable VALUES('2019-08-21');

मौजूदा डेटा

+------------+
| DueDate    |
+------------+
| 2019-07-10 |
| 2019-09-02 |
| 2019-06-01 |
| 2019-05-10 |
| 2019-08-21 |
+------------+

क्वेरी: 90 दिन पहले से अब तक

SELECT * FROM DemoTable 
WHERE DueDate BETWEEN NOW() - INTERVAL 90 DAY AND NOW();

आउटपुट (मान लें आज 2019-10-08 है)

+------------+
| DueDate    |
+------------+
| 2019-07-10 |
| 2019-08-21 |
+------------+

कैसे काम करता है

  • NOW() - वर्तमान डेट और समय
  • INTERVAL 90 DAY - 90 दिन का अंतराल
  • NOW() - INTERVAL 90 DAY - 90 दिन पहले की डेट (2019-07-10)
  • BETWEEN ... AND ... - दोनों सिरे शामिल (इन्क्लूसिव)

बेहतर परफॉरमेंस के लिए (SARGable)

SELECT * FROM DemoTable 
WHERE DueDate >= DATE_SUB(CURDATE(), INTERVAL 90 DAY)
AND DueDate <= CURDATE();

यह इंडेक्स का बेहतर उपयोग करता है क्योंकि कॉलम पर कोई फंक्शन नहीं लगा है।

अन्य INTERVAL उदाहरण

  • INTERVAL 7 DAY - 7 दिन (1 सप्ताह)
  • INTERVAL 1 MONTH - 1 महीना
  • INTERVAL 3 MONTH - 3 महीने
  • INTERVAL 1 YEAR - 1 साल
  • INTERVAL 2 HOUR - 2 घंटे (DATETIME के लिए)

डेटाटाइम कॉलम के लिए

WHERE DateTimeCol >= NOW() - INTERVAL 90 DAY
AND DateTimeCol <= NOW()
  1. - MySQL में STR_TO_DATE और CURDATE से वर्तमान दिनांक वाले रिकॉर्ड ढूंढें

    स्ट्रिंग कॉलम में संग्रहीत दिनांक की तुलना वर्तमान दिनांक से करने के लिए STR_TO_DATE() से पार्स करें और CURDATE() से तुलना करें। सिंटैक्स SELECT * FROM टेबल_नाम WHERE STR_TO_DATE(कॉलम_नाम, फॉर्मेट_स्पेसिफायर) = CURDATE(); उदाहरण: DD/MM/YYYY प्रारूप में दिनांक 1. टेबल बनाएं (स्ट्रिंग कॉलम) ); 2.

  1. - डेटाबेस टेबल से कुछ डेटा चुनें और उसी डेटाबेस में दूसरी टेबल में इन्सर्ट करें MySQL में

    एक टेबल से दूसरी टेबल में डेटा इन्सर्ट करने के लिए INSERT INTO स्टेटमेंट का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1 ( Id int, FirstName varchar(20), Age int ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:

  1. - MySQL में LPAD और INSERT INTO SELECT का उपयोग करके अग्रणी शून्य के साथ मान डालें

    MySQL में अग्रणी शून्य के साथ क्रमिक ID उत्पन्न करना LPAD() फ़ंक्शन और INSERT INTO SELECT का उपयोग करके आप एक कॉलम में अग्रणी शून्य के साथ स्वरूपित मान (जैसे 001, 002, 003) स्वचालित रूप से उत्पन्न और डाल सकते हैं। टेबल बनाना ); Query OK, 0 rows affected (0.00 sec) LPAD के साथ INSERT INTO SELECT क