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

MySQL-এ ভুল ফরম্যাটের তারিখ স্ট্রিংকে ডেট-টাইমে রূপান্তর (STR_TO_DATE)

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
%pAM/PMPM

উদাহরণ: "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');

-- ৩. পুরনো কলাম ড্রপ + রিনেম (ঐচ্ছিক)
  1. MySQL-এ VARCHAR ডেট ফরম্যাট পরিবর্তন করা (STR_TO_DATE + UPDATE)

  2. MySQL-এ DATE_FORMAT() ও STR_TO_DATE() ব্যবহার করে ডেট ফরম্যাট করা

  3. MySQL-এ VARCHAR ডেটাকে DATE ফরম্যাটে কনভার্ট করা

  4. MySQL-এ STR_TO_DATE() ব্যবহার করে ডেট ফরম্যাট কনভার্ট করা