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

MySQL में DATE() और CURDATE() का उपयोग करके आज की दिनांक को छोड़कर सभी रिकॉर्ड चुनना

MySQL में DATE() फ़ंक्शन और CURDATE() का उपयोग करके DATETIME कॉलम से केवल दिनांक भाग की तुलना करके आज की दिनांक वाले रिकॉर्ड को बाहर करें।

उदाहरण: टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    -> Name VARCHAR(100),
    -> DueDate DATETIME
    -> );
Query OK, 0 rows affected (0.54 sec)

मान लें वर्तमान दिनांक 2019-07-03 है:

mysql> INSERT INTO DemoTable VALUES
    -> ('Chris', '2019-06-24'),
    -> ('Chris', '2018-01-01'),
    -> ('Robert', '2019-07-03'),  -- आज
    -> ('Carol', '2019-08-03');

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट

+--------+---------------------+
| Name   | DueDate             |
+--------+---------------------+
| Chris  | 2019-06-24 00:00:00 |
| Chris  | 2018-01-01 00:00:00 |
| Robert | 2019-07-03 00:00:00 |
| Carol  | 2019-08-03 00:00:00 |
+--------+---------------------+
4 rows in set (0.00 sec)

आज की दिनांक को छोड़कर सभी रिकॉर्ड चुनना

mysql> SELECT * FROM DemoTable WHERE DATE(DueDate) != CURDATE();

आउटपुट

+-------+---------------------+
| Name  | DueDate             |
+-------+---------------------+
| Chris | 2019-06-24 00:00:00 |
| Chris | 2018-01-01 00:00:00 |
| Carol | 2019-08-03 00:00:00 |
+-------+---------------------+
3 rows in set (0.00 sec)

व्याख्या:

  • DATE(DueDate) - DATETIME से केवल दिनांक भाग निकालता है (समय हटाता है)
  • CURDATE() - वर्तमान दिनांक लौटाता है (समय के बिना)
  • != - तुलना ऑपरेटर (या <>)

वैकल्पिक दृष्टिकोण:

-- रेंज तुलना (इंडेक्स उपयोग के लिए बेहतर)
WHERE DueDate < CURDATE() OR DueDate >= DATE_ADD(CURDATE(), INTERVAL 1 DAY)

-- या
WHERE DueDate NOT BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 DAY)

रेंज तुलना DueDate पर इंडेक्स का उपयोग करने की अनुमति देती है, जबकि DATE(DueDate) फ़ंक्शन इंडेक्स उपयोग को रोकता है।

  1. - MySQL टेबल से सभी पंक्तियां कैसे हटाएं?

    हम टेबल से सभी पंक्तियों को हटाने के लिए या तो TRUNCATE स्टेटमेंट या DROP स्टेटमेंट का उपयोग कर सकते हैं। यह DELETE स्टेटमेंट की मदद से भी किया जा सकता है लेकिन उस मामले में WHERE क्लॉज को टेबल की सभी पंक्तियों की पहचान करनी होगी। जैसा कि हम जानते हैं कि TRUNCATE और DELETE स्टेटमेंट दोनों टेबल की स

  1. - MySQL SELECT क्वेरी: किसी टेबल से उन रो को चुनें जो दूसरी टेबल में नहीं हैं

    हमारे उदाहरण के लिए, हम दो टेबल बनाएंगे और नेचुरल लेफ्ट जॉइन लागू करके उन रो को प्राप्त करेंगे जो पहली टेबल में हैं लेकिन दूसरी में नहीं। पहली टेबल बनाना। mysql> create table FirstTableDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.48 sec) पहली ट

  1. MySQL से अंतिम 10 रो कैसे चुनें? MySQL से अंतिम 10 रो कैसे चुनें?

    MySQL से अंतिम 10 रो चुनने के लिए, हम SELECT स्टेटमेंट और LIMIT कॉन्सेप्ट के साथ सबक्वेरी का उपयोग कर सकते हैं। निम्न एक उदाहरण है। टेबल बनाना। mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) टेबल में रिकॉर