কম্পিউটার

মাইএসকিউএল-এ দুই-অঙ্কের বছরের সাথে তারিখের মান ব্যবহার করা কেন ভাল অনুশীলন নয়?


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

MySQL নিম্নলিখিত নিয়মগুলির সাহায্যে 2-সংখ্যার বছরের মানগুলি ব্যাখ্যা করে -

  • 00-69 রেঞ্জের বছরের মান 2000-2069 এ রূপান্তরিত হয়।
  • 70-99 রেঞ্জের বছরের মানগুলি 1970-1999 এ রূপান্তরিত হয়৷

আমাদের অবশ্যই তারিখের মানগুলিকে 2-সংখ্যার বিন্যাস হিসাবে সংরক্ষণ করা উচিত নয় কারণ এই বিন্যাসে সংরক্ষিত মানগুলি অস্পষ্ট হয়ে যায় কারণ শতাব্দী অজানা৷

মাইএসকিউএল উদাহরণ অনুসরণ করে এটি আরও স্পষ্টভাবে বোঝা যায় -

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 থেকে 'ভাল' সঞ্চয় করে আমরা কোন বছরকে বোঝাচ্ছি, '1900' বা '2000'। মাইএসকিউএল এটিকে 2000 সাল হিসাবে ব্যাখ্যা করছে।


  1. NULL মান সহ তারিখ রেকর্ড আপডেট করার জন্য MySQL প্রশ্ন

  2. সর্বোচ্চ তারিখ সহ ডুপ্লিকেট মান প্রদর্শন করতে ক্যোয়ারী নির্বাচন করুন

  3. মাইএসকিউএল-এ তারিখের মান সহ রেকর্ড থেকে শেষ তারিখ কীভাবে খুঁজে পাবেন?

  4. MySQL এর সাথে কলামের মান পরিবর্তন করছেন?