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

MySQL-এ দুটি দিনের মধ্যে পরবর্তী সবচেয়ে নিকটবর্তী দিন বের করা

সিনট্যাক্স:

select * from yourTableName order by ( yourColumnName > now()) desc, 
(case when yourColumnName > now() then yourColumnName end) , 
yourColumnName desc limit 1;

প্রথমে একটি টেবিল তৈরি করি:

mysql> create table DemoTable1454 (
    -> ShippingDate date
    -> );
Query OK, 0 rows affected (0.59 sec)

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

mysql> insert into DemoTable1454 values('2019-10-01');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable1454 values('2019-10-03');
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable1454 values('2019-10-05');
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable1454 values('2019-10-04');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable1454 values('2018-10-06');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1454 values('2019-10-06');
Query OK, 1 row affected (0.11 sec)

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

mysql> select * from DemoTable1454;

আউটপুট:

+--------------+
| ShippingDate |
+--------------+
| 2019-10-01   |
| 2019-10-03   |
| 2019-10-05   |
| 2019-10-04   |
| 2018-10-06   |
| 2019-10-06   |
+--------------+
6 rows in set (0.00 sec)

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

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2019-10-04 21:30:01 |
+---------------------+
1 row in set (0.00 sec)

পরবর্তী সবচেয়ে নিকটবর্তী দিন বের করার কোয়েরি:

mysql> select * from DemoTable1454
    -> order by ( ShippingDate > now()) desc,
    ->     (case when ShippingDate > now() then ShippingDate end) ,
    ->     ShippingDate desc
    -> limit 1;

আউটপুট (কারেন্ট ২০১৯-১০-০৪, তাই পরের দিন ২০১৯-১০-০৫):

+--------------+
| ShippingDate |
+--------------+
| 2019-10-05   |
+--------------+
1 row in set (0.00 sec)

লজিক: ভবিষ্যতের ডেটগুলোকে আগে আনা হয় (desc), তারপর সেগুলোর মধ্যে সবচেয়ে ছোটটি (সর্বোচ্চ নিকটবর্তী) বের করা হয়।

  1. MySQL কোয়েরি: পরের ২ দিনের মধ্যে অভ্যন্তরীণ তারিখ (রেকর্ড) খুঁজে বের করা

  2. MySQL-এ BETWEEN দিয়ে দুটি তারিখের রেঞ্জের মধ্যে সকল ডেটা বের করা

  3. MySQL-এ দুটি তারিখের মধ্যে থাকা রেকর্ডের যোগফল বের করা

  4. MySQL-এ একই সারির দুটি ভিন্ন কলামের তারিখের মধ্যে দিনের পার্থক্য বের করা