วันนี้ผมมีวิธีการแปลงรูปแบบวันที่ ใน SQL ให้อยู่ในรูปแบบวันที่ไทยแบบย่อ
มาฝากครับเผื่อได้นำไปประยุกต์ใช้กัน อาจจะดูยาวไปครับ แต่หากท่านในมีวิธีเจ๋งๆ สั้นกว่านี้สามารถแสดงความคิดเห็นแลกเปลี่ยนกันได้ครับ
ตัวอย่าง
2018-06-08 เป็น 8 มิ.ย. 2561
ก่อนอื่นต้องทำความรู้จักกับ Syntax ของการใช้
SQL CASE..WHEN SQL ก่อนนะครับ
ขอไม่อธิบายนะครับ สามารถศึกษาจากเว็บได้ มาดูการเขียนโปรแกรมกันเลยครับ
DECLARE @DateExample Date = null;
Set @DateExample = '2018-06-08'
select @DateExample AS Date ,
convert(nvarchar(10),DAY (@DateExample)) + ' ' +
(CASE
WHEN MONTH (@DateExample) = '1'THEN N'ม.ค.'
WHEN MONTH (@DateExample) = '2'THEN N'ก.พ.'
WHEN MONTH (@DateExample) = '3'THEN N'มี.ค.'
WHEN MONTH (@DateExample) = '4'THEN N'เม.ย.'
WHEN MONTH (@DateExample) = '5'THEN N'พ.ค.'
WHEN MONTH (@DateExample) = '6'THEN N'มิ.ย.'
WHEN MONTH (@DateExample) = '7'THEN N'ก.ค.'
WHEN MONTH (@DateExample) = '8'THEN N'ส.ค.'
WHEN MONTH (@DateExample) = '9'THEN N'ก.ย.'
WHEN MONTH (@DateExample) = '10'THEN N'ต.ค.'
WHEN MONTH (@DateExample) = '11'THEN N'พ.ย.'
WHEN MONTH (@DateExample) = '12'THEN N'ธ.ค.' END) + ' '+
convert(nvarchar(4),year (@DateExample)+543) AS ConvertFormatDate
ผลลัพธ์ |
แล้ว543 มาได้ยังไง?
จะเห็นได้ว่า ปี ค.ศ. จะน้อยกว่า พ.ศ. ครับ
ถ้าอยากทราบว่าห่างกันเท่าไหร่ลองเอา พ.ศ. ลบ ด้วย ค.ศ. ครับ
เช่น 2560
– 2018 ได้เท่ากับ 543
ดังนั้นหากเรามีข้อมูลของปีเป็น ค.ศ. แต่เราต้องการ ข้อมูลของปีเป็น พ.ศ. ก็ให้นำ ค.ศ. บวก 543
เช่น 2018 + 543 จะได้เท่ากับ 2561 ซึ่งก็คือ พ.ศ. นั่นเอง