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

MySQL में दो-अंकीय वर्ष वाली डेट वैल्यू उपयोग करना अच्छा अभ्यास क्यों नहीं है

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

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

  • 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  |
+-----+

mysql> SELECT * FROM year_test WHERE val = '1970';
+-----+
| val |
+-----+
| 70  |
+-----+

mysql> SELECT * FROM year_test WHERE val = '2000';
+-----+
| val |
+-----+
| 00  |
+-----+

mysql> SELECT * FROM year_test WHERE val = '1900';
Empty set (0.06 sec)

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

सिफारिश: हमेशा 4-अंकीय वर्ष (YEAR(4) या डिफ़ॉल्ट YEAR) का उपयोग करें।

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

    इसके लिए GROUP BY और HAVING का उपयोग करें। उदाहरण टेबल बनाएं: mysql> create table DemoTable ( -> StudentName varchar(100), -> DueDate date -> ); Query OK, 0 rows affected (0.72 sec) रिकॉर्ड डालें: mysql> insert into DemoTable values(John, 2019-01-11); Query OK, 1 row aff

  1. - MySQL में MAX() और सबक्वेरी का उपयोग करके रिकॉर्ड्स से अंतिम (नवीनतम) तारीख कैसे खोजें

    सबक्वेरी के साथ MAX() का उपयोग करके नवीनतम तारीख खोजना अंतिम तारीख यानी नवीनतम तारीख प्राप्त करने के लिए, सबक्वेरी के साथ एग्रीगेट फंक्शन MAX() का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ExpiryDate DATE ); रिकॉर्ड

  1. - MySQL में कॉलम मानों को शफ़ल करना

    परिचय MySQL में ORDER BY RAND() का उपयोग करके टेबल की पंक्तियों को यादृच्छिक क्रम में प्राप्त किया जा सकता है, जिससे प्रभावी रूप से कॉलम मान शफ़ल हो जाते हैं। उदाहरण: टेबल बनाना और डेटा डालना ); Query OK, 0 rows affected (0.91 sec) INSERT INTO DemoTable1557(SubjectName) VALUES(C); Query OK, 1 ro