MySQL การใช้งานฟังก์ชัน WEEKOFYEAR()

ฟังก์ชัน WEEKOFYEAR() ใช้เพื่อคืนค่าหมายเลขของสัปดาห์ (week number) ของปี โดยถือว่าสัปดาห์เริ่มต้นในวันอาทิตย์ และสัปดาห์แรกของปีคือสัปดาห์ที่มีวันที่ 1 มกราคม ให้ผลลัพธ์ในช่วง 1 – 53

ประโยชน์ของฟังก์ชัน WEEKOFYEAR()

  1. ใช้จัดกลุ่มข้อมูลตามสัปดาห์ เช่น รายงานรายสัปดาห์
  2. ใช้วิเคราะห์พฤติกรรมหรือกิจกรรมรายสัปดาห์ในปีนั้น
  3. ใช้กรองข้อมูลเฉพาะสัปดาห์ เช่น สัปดาห์ที่ 10 ของปี

รูปแบบการใช้งาน

WEEKOFYEAR(date)
  • date คือค่าวันที่ (ชนิด DATE, DATETIME, TIMESTAMP)

ตัวอย่างการใช้งาน

แสดงสัปดาห์ของปีจากวันที่ 10 เมษายน 2025

SQL
SELECT WEEKOFYEAR('2025-04-10') AS week_num;
-- ผลลัพธ์: 15

ใช้กับวันที่ปัจจุบัน

SQL
SELECT WEEKOFYEAR(NOW()) AS current_week;

ตัวอย่างการประยุกต์ใช้งาน

สรุปยอดขายตามสัปดาห์ของปี

SQL
SELECT WEEKOFYEAR(order_date) AS week_num,
       SUM(total_amount) AS weekly_sales
FROM orders
GROUP BY week_num
ORDER BY week_num;

กรองรายการที่เกิดในสัปดาห์ที่ 40

SQL
SELECT *
FROM events
WHERE WEEKOFYEAR(event_date) = 40;

หมายเหตุ

  • WEEKOFYEAR() ไม่สามารถปรับโหมดนับเองได้ ใช้ได้แบบเดียวเท่านั้น
  • สัปดาห์แรกของปีอาจเริ่มจากปลายปีก่อน หากวันที่ 1 ม.ค. อยู่ในช่วงกลางสัปดาห์
  • ถ้าต้องการควบคุมวันเริ่มต้น/รูปแบบ ควรใช้ WEEK(date, mode) แทน
แชร์เรื่องนี้