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

MySQL-এ ইতিমধ্যে ইনসার্ট করা ডেট-টাইম রেকর্ড থেকে ১ ঘন্টা বিয়োগ করা

তারিখ থেকে বিয়োগ করার জন্য MySQL DATE_SUB() ফাংশন ব্যবহার করা হয়। প্রথমে একটি টেবিল তৈরি করি:

mysql> create table DemoTable1434 (
    -> ArrivalDatetime datetime
    -> );
Query OK, 0 rows affected (3.14 sec)

রেকর্ড ইনসার্ট করি:

mysql> insert into DemoTable1434 values('2019-09-30 21:10:00');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1434 values('2018-09-30 22:20:40');
Query OK, 1 row affected (0.33 sec)
mysql> insert into DemoTable1434 values('2017-09-30 23:10:00');
Query OK, 1 row affected (0.19 sec)

সব রেকর্ড দেখি:

mysql> select * from DemoTable1434;

আউটপুট:

+---------------------+
| ArrivalDatetime     |
+---------------------+
| 2019-09-30 21:10:00 |
| 2018-09-30 22:20:40 |
| 2017-09-30 23:10:00 |
+---------------------+
3 rows in set (0.00 sec)

কারেন্ট টাইম থেকে ১ ঘন্টা বিয়োগ করে আপডেট করার কোয়েরি:

mysql> update DemoTable1434
    -> set ArrivalDatetime=date_sub(now(),interval 1 hour);
Query OK, 3 rows affected (0.19 sec)
Rows matched: 3  Changed: 3  Warnings: 0

কারেন্ট ডেট-টাইম:

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2019-09-30 21:16:48 |
+---------------------+
1 row in set (0.00 sec)

আবার টেবিল চেক করি:

mysql> select * from DemoTable1434;

আউটপুট (সব রো একই সময় দেখাচ্ছে):

+---------------------+
| ArrivalDatetime     |
+---------------------+
| 2019-09-30 20:16:39 |
| 2019-09-30 20:16:39 |
| 2019-09-30 20:16:39 |
+---------------------+
3 rows in set (0.00 sec)
নোট: এই কোয়েরি সব রোকে একই সময়ে আপডেট করবে। প্রতিটি রোয়ের জন্য আলাদা গাণিতিক করতে হলে ভিন্ন পদ্ধতি লাগবে।
  1. MySQL-এ STR_TO_DATE() ব্যবহার করে ডেট রেকর্ড ইনসার্ট/রূপান্তর করা

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

  3. MySQL-এ একাধিক টেবিল থেকে ডেটা নিয়ে একটি টেবিলে ইনসার্ট করা (CROSS JOIN)

  4. MySQL-এ একক INSERT স্টেটমেন্টে একাধিক রো দ্রুত ইনসার্ট করা