MySQL-এ, আমরা নিচের ফাংশনগুলো ব্যবহার করে তারিখ ক্যালকুলেট করতে পারি:
- CURDATE() ফাংশন - এটি কম্পিউটারের বর্তমান তারিখ রিটার্ন করে।
- YEAR() ফাংশন - এটি নির্দিষ্ট তারিখের বছর রিটার্ন করে।
- MONTH() ফাংশন - এটি নির্দিষ্ট তারিখের মাস রিটার্ন করে।
- DAY() ফাংশন - এটি নির্দিষ্ট তারিখের দিন রিটার্ন করে।
- RIGHT() ফাংশন - এটি ফাংশনে নির্দিষ্ট সংখ্যক ক্যারেক্টার রিটার্ন করে দেওয়া তারিখ থেকে। এক্সপ্রেশনের যে অংশটি RIGHT() ফাংশনের রিটার্নের সাথে তুলনা করে সেটি ১ বা ০ মূল্যায়ন করে।
এটি বুঝতে, 'Collegedetail' নামক টেবিল থেকে নিচের ডাটা বিবেচনা করুন:
mysql> SELECT * FROM Collegedetail; +------+---------+------------+ | ID | Country | Estb | +------+---------+------------+ | 111 | INDIA | 2010-05-01 | | 130 | INDIA | 1995-10-25 | | 139 | USA | 1994-09-25 | | 1539 | UK | 2001-07-23 | | 1545 | Russia | 2010-07-30 | +------+---------+------------+ 5 rows in set (0.00 sec)
নিচের কোuery-তে, আমরা সকল ভিন্ন ডেট ফাংশন ব্যবহার করে DATE ক্যালকুলেট করেছি:
mysql> SELECT ID, Estb, CURDATE(), YEAR(Estb), MONTH(Estb), DAY(Estb),
-> (RIGHT(CURDATE(),5) < RIGHT(estb,5)) AS 'Return'
-> FROM Collegedetail;
+------+------------+------------+------------+-------------+-----------+--------+
| ID | Estb | CURDATE() | YEAR(Estb) | MONTH(Estb) | DAY(Estb) | Return |
+------+------------+------------+------------+-------------+-----------+--------+
| 111 | 2010-05-01 | 2017-11-30 | 2010 | 5 | 1 | 0 |
| 130 | 1995-10-25 | 2017-11-30 | 1995 | 10 | 25 | 0 |
| 139 | 1994-09-25 | 2017-11-30 | 1994 | 9 | 25 | 0 |
| 1539 | 2001-07-23 | 2017-11-30 | 2001 | 7 | 23 | 0 |
| 1545 | 2010-07-30 | 2017-11-30 | 2010 | 7 | 30 | 0 |
+------+------------+------------+------------+-------------+-----------+--------+
5 rows in set (0.00 sec)
mysql> SELECT ID, estb, CURDATE(), ((YEAR(CURDATE())-YEAR(estb))-(RIGHT(CURDATE(),5) FROM collegedetail;
+------+------------+------------+-----------+
| ID | estb | CURDATE() | YEARS_OLD |
+------+------------+------------+-----------+
| 111 | 2010-05-01 | 2017-11-30 | 7 |
| 130 | 1995-10-25 | 2017-11-30 | 22 |
| 139 | 1994-09-25 | 2017-11-30 | 23 |
| 1539 | 2001-07-23 | 2017-11-30 | 16 |
| 1545 | 2010-07-30 | 2017-11-30 | 7 |
+------+------------+------------+-----------+
5 rows in set (0.00 sec)