.## 1. บทนำ
ในฐานข้อมูล MySQL คุณจะต้องจัดการกับข้อมูลวันที่และเวลาเป็นประจำ วันที่ที่เก็บในฐานข้อมูลจะถูกบันทึกในรูปแบบมาตรฐาน แต่เมื่อแสดงให้ผู้ใช้ดู คุณมักต้องการปรับรูปแบบใหม่เพื่อให้อ่านง่ายขึ้น นั่นคือจุดที่ฟังก์ชัน DATE_FORMAT มีประโยชน์ ในบทความนี้ เราจะอธิบายวิธีใช้ฟังก์ชัน DATE_FORMAT พร้อมตัวเลือกการจัดรูปแบบต่าง ๆ และแสดงวิธีประยุกต์ใช้งานจริงผ่านตัวอย่างจริง
2. ภาพรวมของฟังก์ชัน DATE_FORMAT
2.1 ฟังก์ชัน DATE_FORMAT คืออะไร?
ฟังก์ชัน DATE_FORMAT เป็นฟังก์ชันของ MySQL ที่ใช้แปลงข้อมูลวันที่ให้เป็นรูปแบบที่กำหนดเอง คุณจะใช้เมื่ออยากแสดงวันที่ในรูปแบบใดรูปแบบหนึ่งที่ไม่ใช่รูปแบบเริ่มต้น YYYY-MM-DD หรือรูปแบบ datetime มาตรฐาน ตัวอย่างเช่น หากต้องการแสดงวันที่ให้ผู้ใช้ในรูปแบบ “Sep 16, 2024” ฟังก์ชันนี้จะมีประโยชน์มาก
2.2 ไวยากรณ์พื้นฐาน
ไวยากรณ์พื้นฐานของฟังก์ชัน DATE_FORMAT มีดังนี้
DATE_FORMAT(date, format)
date: ข้อมูลวันที่ที่คุณต้องการจัดรูปแบบformat: สตริงที่ระบุรูปแบบการแสดงผลของวันที่
มาดูตัวอย่างเฉพาะ
SELECT DATE_FORMAT('2024-09-16', '%Y-%m-%d') AS formatted_date;
คิวรีนี้จะแปลงวันที่ ‘2024-09-16’ ให้เป็นรูปแบบ “2024-09-16” และแสดงผลออกมา

3. พารามิเตอร์รูปแบบวันที่
3.1 รายการของสัญลักษณ์รูปแบบ
ฟังก์ชัน DATE_FORMAT รองรับสัญลักษณ์รูปแบบหลายประเภท ด้านล่างเป็นรายการของสัญลักษณ์ที่ใช้บ่อย
%Y: ปี 4 หลัก (เช่น 2024)%y: ปี 2 หลัก (เช่น 24)%m: เดือน 2 หลัก (01 ถึง 12)%c: เดือน (1 ถึง 12)%d: วัน 2 หลัก (01 ถึง 31)%e: วัน (1 ถึง 31)%H: ชั่วโมงในรูปแบบ 24 ชั่วโมง (00 ถึง 23)%hหรือ%I: ชั่วโมงในรูปแบบ 12 ชั่วโมง (01 ถึง 12)%i: นาที (00 ถึง 59)%s: วินาที (00 ถึง 59)%p: AM หรือ PM
3.2 ตัวอย่างจริง
มาดูตัวอย่างที่ชัดเจนว่าตัวสัญลักษณ์เหล่านี้ส่งผลต่อผลลัพธ์อย่างไร
SELECT
DATE_FORMAT('2024-09-16 14:35:59', '%Y-%m-%d %H:%i:%s') AS full_format,
DATE_FORMAT('2024-09-16 14:35:59', '%b %d, %Y') AS us_format,
DATE_FORMAT('2024-09-16 14:35:59', '%d/%m/%Y') AS european_format,
DATE_FORMAT('2024-09-16 14:35:59', '%h:%i %p') AS twelve_hour_format;
ผลลัพธ์ของคิวรีนี้จะเป็นดังนี้:
full_format: 2024-09-16 14:35:59us_format: Sep 16, 2024european_format: 16/09/2024twelve_hour_format: 02:35 PM
4. กรณีการใช้งานจริง
4.1 สถานการณ์ 1: การสร้างรายงาน
เช่น เมื่อสร้างรายงานประจำเดือนในบริษัท คุณอาจต้องการแสดงวันที่ในรูปแบบ “YYYY-MM” คิวรีต่อไปนี้จัดรูปแบบวันที่รายงานเพื่อจุดประสงค์นั้น
SELECT
DATE_FORMAT(sale_date, '%Y-%m') AS report_month,
SUM(sales) AS total_sales
FROM sales_data
GROUP BY report_month;
คิวรีนี้จะแสดงยอดขายรวมต่อเดือนจากข้อมูลการขายในรูปแบบเช่น “2024-09”
4.2 สถานการณ์ 2: ส่วนติดต่อผู้ใช้
DATE_FORMAT ยังมีประโยชน์เมื่อคุณต้องการแสดงวันที่ให้ผู้ใช้เห็นอย่างชัดเจนในเว็บแอปพลิเคชัน ตัวอย่างเช่น คุณสามารถใช้แบบนี้เพื่อแสดงวันที่และเวลาการเข้าสู่ระบบครั้งล่าสุดบนหน้าโปรไฟล์ผู้ใช้
SELECT
user_name,
DATE_FORMAT(last_login, '%Y-%m-%d %H:%i') AS last_login_formatted
FROM users;
จะแสดงวันที่และเวลาการเข้าสู่ระบบครั้งล่าสุดของผู้ใช้ในรูปแบบ “2024-09-16 14:35”
4.3 สถานการณ์ 3: การปรับประสิทธิภาพคิวรี
ในบางกรณี DATE_FORMAT สามารถช่วยในการปรับประสิทธิภาพคิวรีของฐานข้อมูลได้ ตัวอย่างเช่น คุณอาจใช้การจัดรูปแบบเมื่อดึงข้อมูลในช่วงวันที่ที่กำหนด
SELECT
*
FROM transactions
WHERE DATE_FORMAT(transaction_date, '%Y-%m') = '2024-09';
คิวรีนี้ดึงรายการธุรกรรมทั้งหมดที่เกิดขึ้นในเดือนกันยายน 2024
5. หมายเหตุและแนวทางปฏิบัติที่ดีที่สุดสำหรับ DATE_FORMAT
5.1 พิจารณาด้านประสิทธิภาพ
หากคุณใช้ DATE_FORMAT บ่อยครั้ง อาจส่งผลกระทบต่อประสิทธิภาพ โดยเฉพาะอย่างยิ่ง การนำไปใช้ซ้ำๆ กับชุดข้อมูลขนาดใหญ่สามารถเพิ่มเวลาการประมวลผลได้ หากจำเป็น พิจารณาเก็บวันที่ที่จัดรูปแบบไว้ล่วงหน้า หรือจัดรูปแบบที่ระดับแอปพลิเคชัน
5.2 การปรับให้เหมาะสมกับท้องถิ่น
เมื่อสร้างระบบหลายภาษาโดยใช้ DATE_FORMAT คุณต้องใส่ใจกับการปรับให้เหมาะสมกับท้องถิ่น เนื่องจากรูปแบบการแสดงวันที่แตกต่างกันตามประเทศและภูมิภาค คุณอาจต้องเปลี่ยนรูปแบบแบบไดนามิกตามท้องถิ่นของผู้ใช้
5.3 การจัดรูปแบบที่สอดคล้องกัน
การใช้รูปแบบวันที่ที่สอดคล้องกันทั่วทั้งระบบมีความสำคัญสำหรับการปรับปรุงประสบการณ์ผู้ใช้ ตัวอย่างเช่น โดยใช้รูปแบบเดียวกันในฟอร์มป้อนข้อมูล ส่วนแสดงผล และรายงาน คุณสามารถหลีกเลี่ยงการทำให้ผู้สับสน
6. สรุป
ฟังก์ชัน DATE_FORMAT เป็นเครื่องมือที่ทรงพลังสำหรับการจัดรูปแบบข้อมูลวันที่อย่างยืดหยุ่นใน MySQL ในบทความนี้ เราครอบคลุมการใช้งานพื้นฐาน ตัวอย่างปฏิบัติ และบันทึกสำคัญและแนวปฏิบัติที่ดีที่สุด โดยการใช้ฟังก์ชันนี้อย่างมีประสิทธิภาพ คุณสามารถแสดงวันที่ในลักษณะที่ชัดเจนและเป็นมิตรกับผู้ใช้มากขึ้น ในขั้นตอนถัดไป เราขอแนะนำให้เรียนรู้การดำเนินการวันที่และเวลาขั้นสูงมากขึ้น
7. แหล่งอ้างอิง
- MySQL Official Documentation: DATE_FORMAT
- เนื่องจากบทความและบทช่วยสอนที่เกี่ยวข้องจะถูกอัปเดตเป็นประจำ โปรดตรวจสอบเอกสารอย่างเป็นทางการและบล็อกเทคนิคอย่างสม่ำเสมอ
เราหวังว่าบทความนี้จะช่วยให้คุณเข้าใจและใช้ฟังก์ชัน DATE_FORMAT อย่างมีประสิทธิภาพ


