วิธีแปลงหมายเลขวันที่เป็นชื่อวันใน 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()
ด้วยค่าของวันที่ที่คุณต้องการเพื่อดูว่าฟังก์ชันเหล่านี้ทำงานอย่างไร!