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

MySQL में दो अंकों के वर्षों के साथ दिनांक मानों का उपयोग करना अच्छा अभ्यास क्यों नहीं है?


जैसा कि हम जानते हैं कि, YEAR(2) एक वर्ष को 2-अंकीय प्रारूप में संग्रहीत करता है। उदाहरण के लिए, हम 1969 को एक वर्ष के रूप में स्टोर करने के लिए 69 लिख सकते हैं। वर्ष (2) में, वर्ष 1970 से 2069 (70 से 69) तक निर्दिष्ट किया जा सकता है।

MySQL दो अंकों के वर्ष के मानों की व्याख्या निम्नलिखित नियमों की सहायता से करता है -

  • 00-69 की श्रेणी में वर्ष के मान 2000-2069 में परिवर्तित हो जाते हैं।
  • 70-99 की श्रेणी में वर्ष मान 1970-1999 में परिवर्तित हो जाते हैं।

हमें दिनांक मानों को 2-अंकीय प्रारूप के रूप में संग्रहीत नहीं करना चाहिए क्योंकि इस प्रारूप में संग्रहीत मान अस्पष्ट हो जाते हैं क्योंकि शताब्दी अज्ञात है।

इसे निम्नलिखित MySQL उदाहरण की सहायता से अधिक स्पष्ट रूप से समझा जा सकता है -

mysql> Create Table year_test(val year(2));
Query OK, 0 rows affected, 1 warning (0.23 sec)

mysql> insert into year_test(val) values('70');
Query OK, 1 row affected (0.14 sec)

mysql> insert into year_test(val) values('00');
Query OK, 1 row affected (0.06 sec)

mysql> select * from year_test;
+-----+
| val |
+-----+
| 70  |
| 00  |
+-----+
2 rows in set (0.00 sec)

mysql> select * from year_test where val = '1970';
+-----+
| val |
+-----+
| 70  |
+-----+
1 row in set (0.03 sec)

mysql> select * from year_test where val = '2000';
+-----+
| val |
+-----+
| 00  |
+-----+
1 row in set (0.00 sec)

mysql> select * from year_test where val = '1900';
Empty set (0.06 sec)

यह अनिश्चित है कि हम 00 से 'val' को स्टोर करके किस वर्ष से, '1900' या '2000' को इंगित करते हैं। MySQL इसे वर्ष 2000 के रूप में व्याख्यायित कर रहा है।


  1. अधिकतम दिनांक के साथ डुप्लिकेट मान प्रदर्शित करने के लिए क्वेरी का चयन करें

    इसके लिए GROUP BY और HAVING का इस्तेमाल करें। आइए पहले एक टेबल बनाएं - टेबल बनाएं डेमोटेबल (StudentName varchar(100), ड्यूडेट डेट);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.72 सेकंड) उदाहरण इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल मानों में डालें ( रॉबर्ट,2019-09-11);क्वेरी ठीक

  1. MySQL में दिनांक मानों वाले रिकॉर्ड से अंतिम तिथि कैसे प्राप्त करें?

    अंतिम तिथि यानी नवीनतम प्राप्त करने के लिए, सबक्वायरी के साथ कुल फ़ंक्शन MAX() का उपयोग करें। आइए पहले एक टेबल बनाएं - तालिका बनाएं DemoTable(Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, ExpiryDate date);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (1.40 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड ड

  1. MySQL के साथ कॉलम मानों को शफल करना?

    तत्वों को फेरबदल करने के लिए, आपको ORDER BY RAND() का उपयोग करना होगा। आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.91 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल 1557 (विषय नाम) मान (सी) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित ( 0.13 सेकंड) − .