কম্পিউটার টিউটোরিয়াল

MySQL-এ দুই অঙ্কের বছর (two-digit year) মান ব্যবহার করা কেন ভালো অভ্যাস নয়?


আমরা জানি YEAR(2) বছরের মান ২ অঙ্কে সংরক্ষণ করে। উদাহরণস্বরূপ, 1969 সংরক্ষণ করতে 69 লিখা যায়। YEAR(2)-এ বছর 1970 থেকে 2069 (70 থেকে 69) পর্যন্ত নির্দিষ্ট করা যায়।

MySQL ২ অঙ্কের বছর মান নিচের নিয়ম অনুযায়ী ব্যাখ্যা করে:

  • 00-69 পরিসরের মান 2000-2069 এ রূপান্তরিত হয়।
  • 70-99 পরিসরের মান 1970-1999 এ রূপান্তরিত হয়।

আমাদের ২ অঙ্কের ফরম্যাটে তারিখ মান সংরক্ষণ করা উচিত নয় কারণ এর মাধ্যমে সংরক্ষিত মান অস্পষ্ট হয়ে যায় কারণ শতাব্দী অজানা থাকে।

নিচের 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)

এটি অনিশ্চিত যে 'val'-এ 00 সংরক্ষণ করলে আমরা 1900 বোঝাচ্ছি নাকি 2000। MySQL এটি 2000 হিসাবে ব্যাখ্যা করছে।


  1. MySQL-এ IFNULL() ব্যবহার করে NULL ডেটা রেকর্ড আপডেট এবং সর্ট করা

  2. MySQL-এ ডুপ্লিকেট মান ও সর্বোচ্চ তারিখ একসাথে প্রদর্শন

  3. MySQL-এ ডেটা ভ্যালুযুক্ত রেকর্ড থেকে সর্বশেষ তারিখ বের করার পদ্ধতি

  4. MySQL-এ কলাম মান শাফল করা