การใช้งาน DATE_FORMAT ใน MySQL: วิธีจัดรูปแบบวันที่และเวลาอย่างมืออาชีพ

目次

1. ความรู้พื้นฐานก่อนเรียนรู้การจัดรูปแบบวันที่ใน MySQL

การจัดการข้อมูลวันที่ในฐานข้อมูลมีบทบาทสำคัญต่อทุกระบบ ใน MySQL การบันทึกข้อมูลอย่างถูกต้องและการจัดรูปแบบที่เหมาะสมถือเป็นสิ่งจำเป็น ที่นี่เราจะอธิบายความรู้พื้นฐานเกี่ยวกับรูปแบบการเก็บและการแสดงผลของวันที่ พร้อมทั้งอธิบายการใช้ ฟังก์ชัน DATE_FORMAT ที่มีประโยชน์ต่อการจัดรูปแบบข้อมูล

1.1 ประเภทของวันที่ใน MySQL และคุณสมบัติ

MySQL มีหลายชนิดของข้อมูลสำหรับจัดการวันที่และเวลา การเข้าใจการใช้งานแต่ละชนิดจะช่วยให้เลือกประเภทข้อมูลที่เหมาะสม และเพิ่มประสิทธิภาพของฐานข้อมูลได้

  • DATE
    เก็บวันที่ในรูปแบบ “YYYY-MM-DD” เหมาะสำหรับข้อมูลที่เป็นวันที่อย่างเดียวโดยไม่ใช้เวลา เช่น วันเกิดหรือวันจัดงาน ตัวอย่าง: 2024-10-19
  • DATETIME
    เก็บทั้งวันที่และเวลาในรูปแบบ “YYYY-MM-DD HH:MM:SS” เหมาะสำหรับข้อมูลที่ต้องบันทึกเวลาร่วมด้วย เช่น บันทึก log หรือข้อมูลธุรกรรม ตัวอย่าง: 2024-10-19 15:30:45
  • TIMESTAMP
    เก็บเป็นค่า UNIX Timestamp (จำนวนวินาทีตั้งแต่วันที่ 1 มกราคม 1970) มักใช้ในระบบที่ต้องรองรับหลายโซนเวลา สามารถใช้ CURRENT_TIMESTAMP เพื่อดึงเวลาปัจจุบัน

การเลือกชนิดของวันที่ควรทำอย่างรอบคอบตามความต้องการของแอปพลิเคชัน เพื่อเพิ่มความถูกต้องของข้อมูลและประสิทธิภาพของการสืบค้น

1.2 ความแตกต่างระหว่างการเก็บและการแสดงผล

เมื่อบันทึกวันที่ใน MySQL ฐานข้อมูลจะจัดเก็บในรูปแบบมาตรฐาน แต่บ่อยครั้งเราจำเป็นต้องแสดงผลในรูปแบบที่อ่านง่ายสำหรับผู้ใช้ ซึ่งตรงนี้สามารถใช้ ฟังก์ชัน DATE_FORMAT ในการจัดรูปแบบการแสดงผลได้ตามต้องการ

ในหัวข้อต่อไป เราจะเจาะลึกการใช้งานและเทคนิคของ DATE_FORMAT

2. วิธีการใช้งานพื้นฐานของ DATE_FORMAT

DATE_FORMAT ใช้สำหรับจัดรูปแบบวันที่ที่เก็บไว้ให้ตรงตามที่กำหนด โดยสามารถใช้ตัวกำหนดรูปแบบ (specifier) เพื่อแสดงผลในหลายรูปแบบได้

2.1 โครงสร้างคำสั่ง DATE_FORMAT

DATE_FORMAT(date, format)
  • date: ข้อมูลวันที่ที่ต้องการจัดรูปแบบ (DATE, DATETIME, TIMESTAMP เป็นต้น)
  • format: รูปแบบที่ต้องการแสดง โดยใช้ตัวกำหนดรูปแบบที่ขึ้นต้นด้วย %

เช่น คำสั่งด้านล่างนี้จะแปลงวันที่ให้อยู่ในรูปแบบ “YYYY/MM/DD”

SELECT DATE_FORMAT('2024-10-19', '%Y/%m/%d');

ผลลัพธ์:

2024/10/19

2.2 รายละเอียดของตัวกำหนดรูปแบบ

DATE_FORMAT รองรับตัวกำหนดรูปแบบหลายชนิดเพื่อให้ปรับแต่งการแสดงผลได้ยืดหยุ่น ตัวอย่างเช่น

  • %Y: ปีแบบ 4 หลัก (เช่น 2024)
  • %m: เดือนแบบ 2 หลัก (01–12)
  • %d: วันแบบ 2 หลัก (01–31)
  • %W: ชื่อวันในสัปดาห์ (เช่น Saturday)
  • %H: ชั่วโมงแบบ 24 ชั่วโมง (00–23)
  • %i: นาที (00–59)
  • %s: วินาที (00–59)

เช่น คำสั่งนี้จะคืนค่าเป็นวันในสัปดาห์พร้อมกับวันที่

SELECT DATE_FORMAT('2024-10-19', '%W, %Y-%m-%d');

ผลลัพธ์:

Saturday, 2024-10-19

2.3 การแสดงผลในรูปแบบภาษาญี่ปุ่น

เรายังสามารถจัดรูปแบบให้ออกมาเป็นภาษาญี่ปุ่นได้ เช่น

SELECT DATE_FORMAT('2024-10-19', '%Y年%m月%d日');

ผลลัพธ์:

2024年10月19日

เหมาะกับเอกสาร รายงาน หรือใบแจ้งหนี้ที่ใช้รูปแบบญี่ปุ่น

3. เทคนิคการประยุกต์ใช้ DATE_FORMAT

DATE_FORMAT สามารถนำไปใช้ร่วมกับฟังก์ชัน MySQL อื่น ๆ เพื่อจัดการวันที่ได้อย่างยืดหยุ่น

3.1 ใช้ร่วมกับฟังก์ชันวันเวลาอื่น

เช่น ใช้ร่วมกับ DATE_ADD หรือ DATE_SUB เพื่อคำนวณวันที่

ตัวอย่าง: บวก 1 เดือนและจัดรูปแบบ
SELECT DATE_FORMAT(DATE_ADD('2024-10-19', INTERVAL 1 MONTH), '%Y-%m-%d');

ผลลัพธ์:

2024-11-19

เหมาะกับรายงานอัตโนมัติและการคำนวณข้อมูลที่ต้องการความยืดหยุ่น

3.2 ใช้ร่วมกับ STR_TO_DATE

STR_TO_DATE ใช้แปลงข้อความให้เป็นชนิดข้อมูลวันที่ และเมื่อใช้ร่วมกับ DATE_FORMAT ก็สามารถควบคุมการแสดงผลได้

ตัวอย่าง: แปลงข้อความเป็นวันที่และจัดรูปแบบใหม่
SELECT DATE_FORMAT(STR_TO_DATE('2024年10月19日', '%Y年%c月%e日'), '%Y/%m/%d');

ผลลัพธ์:

2024/10/19

4. ตัวอย่างการจัดรูปแบบวันที่ที่ใช้บ่อย

ตัวอย่างรูปแบบวันที่ที่มักใช้ในงานระบบหรือธุรกิจ

4.1 รูปแบบวันที่คั่นด้วยเครื่องหมาย /

SELECT DATE_FORMAT('2024-10-19', '%Y/%m/%d');

ผลลัพธ์:

2024/10/19

4.2 รูปแบบ ISO 8601

SELECT DATE_FORMAT('2024-10-19', '%Y-%m-%d');

ผลลัพธ์:

2024-10-19

เหมาะสำหรับการแลกเปลี่ยนข้อมูลระหว่างระบบ

4.3 แสดงวันในสัปดาห์และชื่อเดือน

SELECT DATE_FORMAT('2024-10-19', '%M %W');

ผลลัพธ์:

October Saturday

5. สรุป

DATE_FORMAT เป็นเครื่องมือสำคัญของ MySQL ที่ช่วยจัดการรูปแบบวันที่ได้ยืดหยุ่น ตั้งแต่รูปแบบพื้นฐานจนถึงการใช้งานขั้นสูงร่วมกับฟังก์ชันอื่น ๆ

การใช้ร่วมกับ STR_TO_DATE และ DATE_ADD จะช่วยให้ประมวลผลข้อมูลได้หลากหลายมากขึ้น ใช้เทคนิคเหล่านี้เพื่อเพิ่มประสิทธิภาพการจัดการข้อมูลในระบบหรือแอปพลิเคชัน

การเข้าใจและใช้ DATE_FORMAT อย่างถูกต้องจะช่วยพัฒนาระบบฐานข้อมูลที่มีประสิทธิภาพและใช้งานได้สะดวกยิ่งขึ้น