DATE বা DATETIME কলাম থেকে সপ্তাহের দিনের নাম (Monday, Tuesday...) বের করতে MySQL-এ বিল্ট-ইন DAYNAME() ফাংশন ব্যবহার করা হয়।
টেবিল ও ডেটা তৈরি
mysql> CREATE TABLE DemoTable1954 (ShippingDate DATE);
mysql> INSERT INTO DemoTable1954 VALUES
('2019-12-15'), ('2018-04-11'), ('2019-01-31'), ('2016-10-01');
ডেটা যাচাই
mysql> SELECT * FROM DemoTable1954;
+--------------+ | ShippingDate | +--------------+ | 2019-12-15 | | 2018-04-11 | | 2019-01-31 | | 2016-10-01 | +--------------+
কোয়েরি: দিনের নাম বের করা
mysql> SELECT DAYNAME(ShippingDate) AS Day
FROM DemoTable1954;
আউটপুট:
+-----------+ | Day | +-----------+ | Sunday | | Wednesday | | Thursday | | Saturday | +-----------+
সম্পর্কিত ডেট/টাইম ফাংশন
| ফাংশন | রিটার্ন | উদাহরণ (2019-12-15) |
|---|---|---|
| DAYNAME(date) | দিনের নাম | Sunday |
| DAYOFWEEK(date) | দিনের নম্বর (১=রবিবার) | 1 |
| WEEKDAY(date) | দিনের নম্বর (০=সোমবার) | 6 |
| DAYOFMONTH(date) | মাসের তারিখ | 15 |
| MONTHNAME(date) | মাসের নাম | December |
| QUARTER(date) | কোয়ার্টার (১-৪) | 4 |
লোকালাইজেশন (বাংলা দিনের নাম)
MySQL-এ SET lc_time_names = 'bn_BD'; দিয়ে বাঙালি দিনের নাম পাওয়া যায় (সার্ভার লোকেল ইনস্টল থাকতে হয়)।
SET lc_time_names = 'bn_BD';
SELECT DAYNAME('2019-12-15'); -- রবিবার
পারফরম্যান্স টিপ
WHERE DAYNAME(date) = 'Sunday'লিখলে ইন্ডেক্স ব্যবহার হয় না।- বদলে:
WHERE DAYOFWEEK(date) = 1(ইন্টিজার তুলনা, ইন্ডেক্স ব্যবহার করতে পারে ফাংশনাল ইন্ডেক্স সহ)।