जैसा कि हम जानते हैं, 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) का उपयोग करें।