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

MySQL-এ "1h 15 min" স্ট্রিংকে মিনিটে রূপান্তর করা (৭৫ মিনিট)

"১h ১৫ min" ফরম্যাটের স্ট্রিংকে মিনিটে রূপান্তর করতে STR_TO_DATE() এবং TIME_TO_SEC() ফাংশন ব্যবহার করুন। প্রথমে একটি টেবিল তৈরি করি:

mysql> CREATE TABLE DemoTable (stringDate VARCHAR(100));

রেকর্ড যোগ করি:

mysql> INSERT INTO DemoTable VALUES('1h 15 min'), ('2h 30 min');

সকল রেকর্ড দেখতে:

mysql> SELECT * FROM DemoTable;

আউটপুট:

+------------+
| stringDate |
+------------+
| 1h 15 min  |
| 2h 30 min  |
+------------+

স্ট্রিংকে মিনিটে রূপান্তর করার কোয়েরি:

mysql> SELECT TIME_TO_SEC(STR_TO_DATE(stringDate, '%l h %i min')) / 60 AS minutes 
FROM DemoTable 
HAVING minutes IS NOT NULL
UNION ALL
SELECT TIME_TO_SEC(STR_TO_DATE(stringDate, '%i min')) / 60 AS minutes 
FROM DemoTable 
HAVING minutes IS NOT NULL;

আউটপুট:

+----------+
| minutes  |
+----------+
| 75.0000  |
| 150.0000 |
+----------+

ব্যাখ্যা:

  • STR_TO_DATE(stringDate, '%l h %i min'): '১h ১৫ min' ফরম্যাট পার্স করে TIME ভ্যালু বানায় (০১:১৫:০০)। %l = ১২-ঘণ্টা ফরম্যাটে ঘণ্টা (১-১২), %i = মিনিট।
  • TIME_TO_SEC(...): TIME ভ্যালুকে সেকেন্ডে রূপান্তর করে (৪৫০০ সেকেন্ড)।
  • / 60: সেকেন্ডকে মিনিটে রূপান্তর করে।
  • UNION ALL: শুধু মিনিট ফরম্যাট ('১৫ min') वालাও হ্যান্ডেল করার জন্য দ্বিতীয় কোয়েরি।
  • HAVING minutes IS NOT NULL: পার্স করতে না পারলে NULL ফেরত দেয়, সেগুলো বাদ দেয়।

সতর্কতা: এটি কিছুটা জটিল। অ্যাপ্লিকেশন লেভেলে (PHP, Python, Java) পার্স করা বেশি নির্ভরযোগ্য এবং পঠনীয়।

  1. MySQL-এ হেক্স স্ট্রিংকে সংখ্যায় রূপান্তর

  2. MySQL-এ VARCHAR স্ট্রিংকে DOUBLE-এ কনভার্ট (CAST বা +0.0)

  3. MySQL-এ টাইমস্ট্যাম্পকে মাসে কনভার্ট করা

  4. MySQL-এ LIKE অপারেটরকে IN() এর মতো ব্যবহার করা