CREATE FUNCTION CONVERT_DATE_TO_THAI(param_date date)
RETURNS VARCHAR(255)
BEGIN
SET @month_th = 'มกราคม,กุมภาพันธ์,มีนาคม,เมษายน,พฤษภาคม,มิถุนายน,กรกฎาคม,สิงหาคม,กันยายน,ตุลาคม,พฤศจิกายน,ธันวาคม';
SET @day = DAY(param_date);
SET @month= SUBSTRING_INDEX(SUBSTRING_INDEX(@month_th, ',', MONTH(param_date)), ',' , -1);
SET @year = YEAR(param_date) + 543;
RETURN CONCAT(@day, ' ', @month, ' ', @year);
END;
1. กำหนดค่าคงที่รายชื่อเดือนและชื่อวันในภาษาไทย
SET @month_th = 'มกราคม,กุมภาพันธ์,มีนาคม,เมษายน,พฤษภาคม,มิถุนายน,กรกฎาคม,สิงหาคม,กันยายน,ตุลาคม,พฤศจิกายน,ธันวาคม';
2. ใช้ฟังก์ชันใน MySQL เพื่อดึงค่าวันที่ เดือน และปี
SET @day = DAY(param_date);
SET @month= SUBSTRING_INDEX(SUBSTRING_INDEX(@month_th , ',', MONTH(param_date)), ',' , -1);
SET @year= YEAR(param_date) + 543;
@
day เก็บค่าวันที่ (Day) จากวันที่ที่รับเข้ามา@month
เก็บค่าชื่อเดือน (Month) ในภาษาไทย โดยใช้ฟังก์ชันMONTH
เพื่อหาค่าที่ตรงกับเดือน@year
เก็บค่าปี (Year) ที่เพิ่มขึ้นจากปีที่รับเข้ามา โดยเพิ่มค่า 543 เพื่อแปลงเป็นปีที่ใช้ในปฏิทินไทย
3. ส่งค่าผลลัพธ์กลับ
RETURN CONCAT(@day ' ', @month, ' ', @year);
ใช้ฟังก์ชัน CONCAT
เพื่อรวมค่าวันที่ ชื่อเดือน และปีเข้าด้วยกัน โดยเว้นวรรคระหว่างข้อมูล
ฟังก์ชันข้างต้นสามารถนำไปใช้เพื่อแปลงวันที่ในรูปแบบภาษาไทยในฐานข้อมูล MySQL ได้ โดยสามารถเรียกใช้ฟังก์ชันดังกล่าวได้ด้วยคำสั่ง
SELECT CONVERT_DATE_TO_THAI('2021-06-23') AS thai_date;
ผลลัพธ์ที่คาดหวัง
23 มิถุนายน 2564