MySQL-এ নন-স্ট্যান্ডার্ড ফরম্যাটে (যেমন "April 04 2019") সংরক্ষিত তারিখ স্ট্রিংকে সঠিক DATE/DATETIME টাইপে রূপান্তর করতে STR_TO_DATE() ফাংশন ব্যবহার করুন।
সিনট্যাক্স
STR_TO_DATE(date_string, format_string)
সাধারণ ফরম্যাট স্পেসিফায়ার
| স্পেসিফায়ার | অর্থ | উদাহরণ |
|---|---|---|
| %M | পূর্ণ মাসের নাম | January, April |
| %m | ২-অঙ্কের মাস (০১-১২) | 01, 04 |
| %b | সংক্ষিপ্ত মাসের নাম | Jan, Apr |
| %d | ২-অঙ্কের দিন (০১-৩১) | 04, 12 |
| %e | দিন (১-৩১, লিডিং স্পেস) | 4, 12 |
| %Y | ৪-অঙ্কের বছর | 2019 |
| %y | ২-অঙ্কের বছর | 19 |
| %H | ২৪-ঘণ্টা ঘণ্টা | 14 |
| %h/%I | ১২-ঘণ্টা ঘণ্টা | 02 |
| %i | মিনিট | 30 |
| %s | সেকেন্ড | 45 |
| %p | AM/PM | PM |
উদাহরণ: "April 04 2019" ফরম্যাট
CREATE TABLE convert_date_demo (
admission_date VARCHAR(200)
);
INSERT INTO convert_date_demo VALUES
('April 04 2019'), ('May 05 2018'), ('January 01 2012'), ('June 12 2016');
কনভার্ট ক্যোয়ারি
SELECT STR_TO_DATE(admission_date, '%M %e %Y') AS converted_date
FROM convert_date_demo;
নোট: মূল আর্টিকেলে '%M %e %Y %l:%i%p' ব্যবহার করা হয়েছে কিন্তু ইনপুটে টাইম নেই। %e দিনের জন্য (স্পেস-প্যাডেড) ব্যবহার করা ভালো।
ফলাফল
+---------------------+
| converted_date |
+---------------------+
| 2019-04-04 00:00:00 |
| 2018-05-05 00:00:00 |
| 2012-01-01 00:00:00 |
| 2016-06-12 00:00:00 |
+---------------------+
আরও ফরম্যাট উদাহরণ
-- "31/12/2023" (dd/mm/yyyy)
STR_TO_DATE('31/12/2023', '%d/%m/%Y')
-- "2023-12-31 14:30:59" (ISO)
STR_TO_DATE('2023-12-31 14:30:59', '%Y-%m-%d %H:%i:%s')
-- "Dec 31, 2023"
STR_TO_DATE('Dec 31, 2023', '%b %d, %Y')
-- "12:30 PM"
STR_TO_DATE('12:30 PM', '%h:%i %p')
বিকল্প: CAST (সিম্পল ফরম্যাটের জন্য)
-- ISO ফরম্যাট (YYYY-MM-DD) সরাসরি কাস্ট হয়
SELECT CAST('2024-03-15' AS DATE);
টেবিলে পার্মানেন্ট কনভার্ট (ALERT TABLE)
-- ১. নতুন DATE কলাম যোগ
ALTER TABLE convert_date_demo ADD COLUMN admission_dt DATE;
-- ২. আপডেট
UPDATE convert_date_demo
SET admission_dt = STR_TO_DATE(admission_date, '%M %e %Y');
-- ৩. পুরনো কলাম ড্রপ + রিনেম (ঐচ্ছিক)