MySQL-এ মাসের সপ্তাহ বের করার জন্য কোনো স্ট্যান্ডার্ড বিল্ট-ইন ফাংশন নেই। কিন্তু নিচের ফর্মুলা ব্যবহার করে ক্যালকুলেট করা যায়।
ফর্মুলা
SELECT WEEK(yourDateColumnName, 5)
- WEEK(DATE_SUB(yourDateColumnName, INTERVAL DAYOFMONTH(yourDateColumnName) - 1 DAY), 5)
+ 1 AS anyAliasName
FROM yourTableName;
উদাহরণ দিয়ে বুঝি
টেবিল তৈরি করুন:
mysql> CREATE TABLE FirstWeekOfMonth (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> yourdate DATE
-> );
Query OK, 0 rows affected (2.50 sec)
রেকর্ড ইনসার্ট করুন:
mysql> INSERT INTO FirstWeekOfMonth(yourdate) VALUES('2019-01-18');
mysql> INSERT INTO FirstWeekOfMonth(yourdate) VALUES('2019-04-19');
mysql> INSERT INTO FirstWeekOfMonth(yourdate) VALUES('2019-05-20');
mysql> INSERT INTO FirstWeekOfMonth(yourdate) VALUES('2019-12-31');
mysql> INSERT INTO FirstWeekOfMonth(yourdate) VALUES('2019-10-05');
mysql> INSERT INTO FirstWeekOfMonth(yourdate) VALUES('2019-08-25');
সকল রেকর্ড দেখুন:
mysql> SELECT * FROM FirstWeekOfMonth;
+----+------------+
| Id | yourdate |
+----+------------+
| 1 | 2019-01-18 |
| 2 | 2019-04-19 |
| 3 | 2019-05-20 |
| 4 | 2019-12-31 |
| 5 | 2019-10-05 |
| 6 | 2019-08-25 |
+----+------------+
6 rows in set (0.00 sec)
মাসের সপ্তাহ বের করুন
mysql> SELECT WEEK(yourdate, 5)
-> - WEEK(DATE_SUB(yourdate, INTERVAL DAYOFMONTH(yourdate) - 1 DAY), 5)
-> + 1 AS FirstWeekDemo
-> FROM FirstWeekOfMonth;
+---------------+
| FirstWeekDemo |
+---------------+
| 3 |
| 3 |
| 4 |
| 6 |
| 1 |
| 4 |
+---------------+
6 rows in set (0.00 sec)
ব্যাখ্যা:
WEEK(date, 5)- সপ্তাহ নম্বর (মঙ্গলবার শুরু)DAYOFMONTH(date) - 1- মাসের প্রথম দিন বের করতেDATE_SUB(date, INTERVAL ... DAY)- মাসের প্রথম তারিখ বের করতে- দুই সপ্তাহের পার্থক্য + 1 = মাসের সপ্তাহ নম্বর
নোট: MySQL 8.0+ এ WEEK() মোড প্যারামিটার দিয়ে সপ্তাহের শুরু দিন কাস্টমাইজ করা যায়।