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

MySQL-এ TIME_TO_SEC() এবং SEC_TO_TIME() ব্যবহার করে সময় যোগফল বের করা

MySQL-এ একাধিক TIME মান যোগ করতে সেগুলো সেকেন্ডে রূপান্তর করে যোগ করা হয়, তারপর আবার TIME ফরম্যাটে ফিরিয়ে আনা হয়।

টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> CREATE TABLE DemoTable (
    -> ArrivalTime TIME
    -> );
Query OK, 0 rows affected (0.63 sec)
mysql> INSERT INTO DemoTable VALUES('04:10:00');
mysql> INSERT INTO DemoTable VALUES('05:20:50');
mysql> INSERT INTO DemoTable VALUES('06:40:10');

সব রেকর্ড দেখানো

mysql> SELECT * FROM DemoTable;

আউটপুট

+-------------+
| ArrivalTime |
+-------------+
| 04:10:00    |
| 05:20:50    |
| 06:40:10    |
+-------------+
3 rows in set (0.00 sec)

সময় যোগফল বের করা

mysql> SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(ArrivalTime))) FROM DemoTable;

আউটপুট

+-------------------------------------------------+
| SEC_TO_TIME(SUM(TIME_TO_SEC(ArrivalTime)))      |
+-------------------------------------------------+
| 16:11:00                                        |
+-------------------------------------------------+
1 row in set (0.00 sec)

ব্যাখ্যা:

  1. TIME_TO_SEC(ArrivalTime) — প্রতিটি টাইম মানকে সেকেন্ডে রূপান্তর করে (০৪:১০:০০ = ১৫০০০ সেকেন্ড)।
  2. SUM(...) — সব সেকেন্ড যোগ করে।
  3. SEC_TO_TIME(...) — মোট সেকেন্ডকে আবার HH:MM:SS ফরম্যাটে রূপান্তর করে।

নোট: যদি যোগফল ২৪ ঘণ্টার বেশি হয়, SEC_TO_TIME ২৪ ঘণ্টার মডুলো নিয়ে ফলাফল দেয়। বড় সময়ের জন্য CONCAT(FLOOR(total_sec/3600), ':', ...) বা কাস্টম ফরম্যাটিং ব্যবহার করুন।

  1. MySQL-এ CHAR(1) কলামে NULL ইনসার্ট করা

  2. MySQL-এ VARCHAR বা TIME ডেটা টাইপের সারি যোগফল বের করা

  3. MySQL-এ TIME_FORMAT(), SUBSTRING(), CONCAT() ব্যবহার করে VARCHAR 'টাইম' কে রিয়েল টাইমে কনভার্ট করুন

  4. MySQL-এ MONTH() এবং SUM() ব্যবহার করে বর্তমান মাসের টোটাল অ্যামাউন্ট বের করা