วิธีแปลงหมายเลขวันที่เป็นชื่อวันใน SQL Server

หากคุณเคยทำงานกับ SQL Server คุณอาจจะเจอสถานการณ์ที่ต้องดึงบางส่วนของวันที่เพื่อให้เข้าใจง่ายและใช้งานได้สะดวกมากขึ้น หนึ่งในความต้องการทั่วไปคือการแปลงการแสดงผลวันในรูปแบบตัวเลข—ซึ่งได้มาจากฟังก์ชัน datepart—เป็นชื่อที่ตรงกัน (เช่น “วันจันทร์” หรือ “วันอังคาร”) ในบทความนี้ เราจะสำรวจวิธีการทำการแปลงนี้ให้ไวใน SQL Server

เข้าใจปัญหา

เมื่อคุณใช้ฟังก์ชัน SQL Server datepart การดึงวันในสัปดาห์จากวันที่จะให้หมายเลขระหว่าง 1 ถึง 7 โดยมีความหมายดังนี้:

  • 1 = วันอาทิตย์
  • 2 = วันจันทร์
  • 3 = วันอังคาร
  • 4 = วันพุธ
  • 5 = วันพฤหัสบดี
  • 6 = วันศุกร์
  • 7 = วันเสาร์

ตัวอย่างเช่น การรันคำสั่ง SQL ดังนี้จะส่งคืนวันในสัปดาห์เป็นหมายเลข:

SELECT DATEPART(dw, GETDATE());

แม้ว่าค่าเชิงตัวเลขนี้อาจมีประโยชน์ แต่ก็ไม่ค่อยเป็นมิตรกับผู้ใช้มากนัก; เป้าหมายของเราคือการแปลงข้อมูลเชิงตัวเลขนี้ให้เป็นรูปแบบที่อ่านเข้าใจง่ายขึ้นโดยเฉพาะชื่อวัน

วิธีแก้ปัญหา: การใช้ datename

เพื่อให้ได้ชื่อของวันแทนที่จะเป็นหมายเลข คุณสามารถใช้ฟังก์ชัน DATENAME ใน SQL Server ฟังก์ชัน DATENAME ช่วยให้คุณสามารถส่งคืนชื่อของวันที่ส่วนใดส่วนหนึ่งสำหรับวันที่ที่กำหนด นี่คือวิธีการทำ:

ขั้นตอนที่ 1: การใช้ฟังก์ชัน DATENAME

คุณสามารถแทนที่ฟังก์ชัน datepart ด้วย datename ในคำสั่ง SQL ของคุณได้ดังนี้:

SELECT DATENAME(weekday, GETDATE());

คำอธิบายของคำสั่ง:

  • DATENAME: ฟังก์ชันนี้มีพารามิเตอร์สองตัว; ตัวแรกคือส่วนของวันที่ที่คุณต้องการดึง (ในกรณีนี้คือ weekday) และตัวที่สองคือวันที่ที่คุณต้องการดึงข้อมูล (ในกรณีนี้คือวันที่ปัจจุบันที่ส่งคืนโดย GETDATE()).
  • GETDATE(): ฟังก์ชันนี้ส่งคืนข้อมูลเวลาและวันที่ปัจจุบันของระบบฐานข้อมูล

ขั้นตอนที่ 2: การรันคำสั่ง

เมื่อคุณรันคำสั่ง SELECT ข้างต้น คำสั่งนี้จะส่งคืนชื่อวันของวันนี้ ตัวอย่างเช่น “วันอาทิตย์,” “วันจันทร์,” เป็นต้น ซึ่งทำให้เข้าใจได้ง่ายขึ้นในทันที

สรุป

โดยการใช้ฟังก์ชัน DATENAME ใน SQL Server คุณสามารถแปลงการแสดงผลวันในรูปแบบตัวเลขให้เป็นชื่อที่มีความหมายมากขึ้นได้อย่างง่ายดาย โดยแค่คำสั่งง่ายๆ นี้อาจช่วยประหยัดเวลาและทำให้การส่งออกข้อมูลของคุณเข้าใจได้มากขึ้น โดยเฉพาะในรายงานหรือส่วนติดต่อผู้ใช้

ครั้งหน้าถ้าคุณต้องการดึงวันในสัปดาห์ใน SQL Server อย่าลืมว่าการแปลงหมายเลขให้เป็นชื่อเพียงแค่คำสั่งเร็วๆ ก็พอแล้ว!

อย่าลังเลที่จะแ experiment กับวันที่ต่างๆ โดยการแทนที่ GETDATE() ด้วยค่าของวันที่ที่คุณต้องการเพื่อดูว่าฟังก์ชันเหล่านี้ทำงานอย่างไร!