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

পুরনো তারিখ (১৯৭০-এর আগে) UNIX_TIMESTAMP-এ রূপান্তর করলে ০ কেন আসে

UNIX_TIMESTAMP() ফাংশন দেওয়া তারিখ/ডেটাটাইম থেকে সেকেন্ডের সংখ্যা রিটার্ন করে। কিন্তু TIMESTAMP ডেটা টাইপের রেঞ্জ 1970-01-01 00:00:01 থেকে 2038-01-19 08:44:07। তাই ১৯৭০-এর আগের তারিখ (যেমন 1965-05-15) এই রেঞ্জের বাইরে পড়ে, ফলে MySQL 0 রিটার্ন করে।

উদাহরণ

mysql> SELECT UNIX_TIMESTAMP('1965-05-15');
+----------------------------------------------+
| UNIX_TIMESTAMP('1965-05-15 05:04:30')        |
+----------------------------------------------+
| 0                                            |
+----------------------------------------------+

mysql> SELECT UNIX_TIMESTAMP('1970-05-15 05:04:30');
+----------------------------------------------+
| UNIX_TIMESTAMP('1970-05-15 05:04:30')        |
+----------------------------------------------+
| 11576070                                     |
+----------------------------------------------+

সমাধান

  • ১৯৭০-এর আগের তারিখের জন্য DATETIME টাইপ ব্যবহার করুন (রেঞ্জ: ১০০০-৯৯৯৯)।
  • ঐতিহাসিক ডেটা হ্যান্ডল করার সময় DATETIME বা স্ট্রিং ফরম্যাট ব্যবহার করুন।
  1. PHP এবং MySQL-এ ডেটা ফরম্যাট dd/mm/yyyy-এ পরিবর্তন করা

  2. MySQL-এ DATE/TIMESTAMP থেকে মাস নম্বর বের করা

  3. MySQL-এ DATE_FORMAT ব্যবহার করে টাইমস্ট্যাম্প থেকে মাসের নাম বের করা

  4. MySQL-এ DATE_FORMAT ব্যবহার করে তারিখ ফরম্যাট DD-MM-YYYY-এ দেখানো