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

วันอังคารที่ 26 มิถุนายน พ.ศ. 2561

IF - Else จุดเริ่มต้นโดยไม่มีจุดสิ้นสุด (การใช้ IF ELSE แบบเปรียบเทียบกับชีวิตประจำวัน)






 IF - Else จุดเริ่มต้น โดยไม่มีจุดสิ้นสุด

           ก่อนอื่นต้องขออธิบายก่อนครับว่า ที่ผมต้องชื่อหัวข้อว่า
“IF - Else จุดเริ่มต้น โดยไม่มีจุดสิ้นสุด หมายถึงอะไร ทำไมมันคือจุดเริ่มต้น IF Else ผมเชื่อว่าหลายสายงานต้องได้เจอกับ ไม่เพียงแต่งานด้าน Programming เพียงอย่างเดียว สายอาชีพอื่นก็ต้องเจอครับ อย่างเช่นงานที่ออกแบบเกี่ยวกับ Flow การทำงานต่างๆก็อาจได้เจอ แต่ลักษณะการนำมาใช้งานอาจจะแตกต่างกัน คำว่าจุดเริ่มต้นก็คือ ผู้เรียนการเขียนโปรแกรมในระดับเริ่มต้นจะได้ได้เจอกับ IF – Else แน่นอน และพอจบการศึกษา พอเข้าทำงานไม่ว่างานจะยากหรือง่ายก็ต้องได้เจอเจ้า IF – ELSE  อยู่ดี ผู้ที่มาด้านนี้จึงจำเป็นต้องทำความเข้าใจให้ได้ครับ
           
         จุดประสงค์ของบทความนี้คือ เพื่อจะอธิบายการใช้  IF – ELSE  แบบเข้าใจง่าย โดยผมขอยกตัวอย่าง IF – ELSE  ในชีวิตประจำวันสัก 1 ตัวอย่าง เช่น การ Scan ปลดล็อคประตูหอพัก ท่านอาจจะถามว่า แล้วมันเกี่ยวอะไรกับเจ้า IF – ELSE  ?” แน่นอนครับการที่ประตูมันจะเปิดได้มันต้องมีเงื่อนไขแน่นอน 

IF - ELSE ที่ว่านี่ก็คือ Condition หรือเงื่อนไขนั่นเอง



สมมติว่าผู้สร้างประตูได้กำหนดว่าประตูจะสามารถปลดล็อดได้ 


        ถ้า (ชิพที่สแกนเมื่อถอดรหัสแล้ว รหัสตรงกับ รหัสที่ตั้งไวในระบบ)


          {


            ประตูจะปลดล็อค


            ส่งเสียงยินดีต้อนรับเข้าสู่หอพัก

          }


        แต่ถ้าชิพที่สแกนถอดรหัสแล้ว ไม่ตรงกับ รหัสที่ตั้งไวในระบบ


          {

    
           ประตูไม่สามารถปลดล็อคได้
        
           แสดงไฟเตือน

          }



          หรือ อธิบายแบบสั้นก็ อย่างเช่น

          If (เงื่อนไขในวงเล็บเป็นจริง)


           {
             

            กำหนดการกระทำในปีกกานี้

           }

          Else


           {


           กำหนดการกระทำในปีกกานี้


            }
          

          สำหรับ วงเล็บหรือปีกกาจะไม่ตายตัวทุกภาษาบางภาษาก็ไม่ใส่ปีกกา ทั้งนี้ขึ้นอยู่กับ Syntax ของแต่ละภาษา



If - Else Condition flow chart 


          ที่นี้มาลองเขียนโปรแกรมง่ายด้วย ภาษา C++ กันครับ 

ผมขอแนะเว็บที่ใช้ Compile ภาษา C/C++ online 

คือเว็บนี้ครับ https://www.onlinegdb.com/online_c_compiler


ลองเขียนโปรแกรมตามนี้ครับ ผมขอใช้เป็นรูปภาพนะครับเพื่อจะได้นำไปฝึกเขียนด้วยตนเอง

ทดสอบการใช้ IF - ELSE

ผลลัพธ์เมื่อเงื่อนไขเป็นจริง


ผลลัพธ์เมื่อเงื่อนไขเป็นเท็จ


    หวังว่าบทความนี้จะเป็นประโยชน์ และไขข้อสงสัยเกี่ยวกับ IF-ELSEครับ ท่านสามารถแสดงความคิดเห็นเชิงสร้างสรรค์ได้ครับผม ขอบคุณครับทุกท่านที่ติดตามครับ