1. บทนำ
ในฐานข้อมูล MySQL มีการจัดการข้อมูลวันที่และเวลาอยู่บ่อยครั้ง วันที่ที่ถูกบันทึกในฐานข้อมูลจะถูกเก็บในรูปแบบมาตรฐาน แต่เมื่อแสดงผลให้ผู้ใช้ เรามักต้องการเปลี่ยนรูปแบบให้ดูเข้าใจง่ายขึ้น ฟังก์ชัน DATE_FORMAT
คือเครื่องมือสำคัญสำหรับงานนี้ ในบทความนี้เราจะอธิบายวิธีใช้ DATE_FORMAT
พร้อมตัวเลือกฟอร์แมตต่างๆ และนำเสนอวิธีการใช้งานผ่านตัวอย่างจริง
2. ภาพรวมของฟังก์ชัน DATE_FORMAT
2.1 DATE_FORMAT คืออะไร?
DATE_FORMAT
เป็นฟังก์ชันที่ใช้ใน MySQL เพื่อแปลงข้อมูลวันที่ให้อยู่ในรูปแบบที่ต้องการ แทนที่จะใช้รูปแบบปกติอย่าง YYYY-MM-DD หรือวันเวลาแบบดั้งเดิม คุณสามารถแสดงวันที่ในรูปแบบที่ต้องการ เช่น “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 รายการรหัสรูปแบบ (Format Specifier)
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', '%Y年%m月%d日') AS japanese_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:59japanese_format
: 2024年09月16日european_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: ส่วนติดต่อผู้ใช้ (UI)
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 ประสิทธิภาพ (Performance)
การใช้ DATE_FORMAT
บ่อยๆ อาจกระทบต่อประสิทธิภาพโดยเฉพาะกับชุดข้อมูลขนาดใหญ่ หากจำเป็น ควรพิจารณาบันทึกค่าที่ฟอร์แมตไว้ล่วงหน้า หรือแปลงรูปแบบที่แอปพลิเคชันฝั่งผู้ใช้แทน
5.2 การรองรับหลายภาษา (Localization)
ถ้าสร้างระบบรองรับหลายภาษาโดยใช้ DATE_FORMAT
ต้องคำนึงถึงรูปแบบวันที่ที่แตกต่างกันในแต่ละประเทศหรือภูมิภาค ควรเปลี่ยนรูปแบบตามภาษาหรือโลเคลของผู้ใช้
5.3 ความสม่ำเสมอของรูปแบบ (Format Consistency)
ควรรักษาความสม่ำเสมอของรูปแบบวันที่ทั้งระบบ ไม่ว่าจะเป็นฟอร์มรับข้อมูล หน้าแสดงผล หรือรายงาน เพื่อป้องกันความสับสนให้กับผู้ใช้
6. สรุป
DATE_FORMAT
เป็นเครื่องมือที่ทรงพลังในการจัดรูปแบบวันที่ใน MySQL ตั้งแต่การใช้งานพื้นฐาน ตัวอย่างจริง ไปจนถึงข้อควรระวังและแนวทางปฏิบัติที่ดีที่สุด การใช้ฟังก์ชันนี้จะช่วยให้คุณแสดงวันที่ได้สวยงามและเข้าใจง่ายมากขึ้น ขอแนะนำให้ศึกษาการจัดการวันเวลาเชิงลึกเพิ่มเติมในขั้นต่อไป
7. แหล่งข้อมูลเพิ่มเติม
- เอกสารทางการของ MySQL: DATE_FORMAT
- สำหรับบทความหรือคู่มือเพิ่มเติม โปรดตรวจสอบเอกสารทางการหรือบล็อกผู้เชี่ยวชาญเป็นระยะ เพื่อรับข่าวสารล่าสุด
หวังว่าบทความนี้จะช่วยให้คุณเข้าใจและใช้งาน DATE_FORMAT
ใน MySQL ได้อย่างมั่นใจมากขึ้น