วันพฤหัสบดีที่ 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 ซึ่งก็คือ พ.. นั่นเอง

ไม่มีความคิดเห็น:

แสดงความคิดเห็น