วันพฤหัสบดีที่ 28 มิถุนายน พ.ศ. 2561

SQL Trick! การเปลี่ยนรูปแบบวันที่ใน SQL เป็นรูปแบบวันที่ไทยแบบย่อด้วย SQL CASE WHEN




          วันนี้ผมมีวิธีการแปลงรูปแบบวันที่ ใน 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 ซึ่งก็คือ พ.ศ. นั่นเอง

สั่งอาหาร - บังปัง 45 ☕ บังปัง 45 กำลังโหลดข้อมูลโต๊ะ... ทั้งหมด ...