ฟังก์ชัน PERIOD_DIFF() ใช้เพื่อคำนวณจำนวนเดือนระหว่างช่วงเวลาสองค่าที่อยู่ในรูปแบบ YYYYMM โดยคืนค่าผลลัพธ์เป็นจำนวนเดือนทั้งหมดระหว่างช่วงเวลา
ประโยชน์ของฟังก์ชัน PERIOD_DIFF()
- ใช้หาจำนวนเดือนที่ต่างกันระหว่างสองช่วงเวลา
- ใช้ประเมินอายุของงวดบัญชี
- ใช้วิเคราะห์รอบเวลาการสมัคร / ชำระเงินย้อนหลัง
- เหมาะสำหรับระบบที่เก็บเดือนเป็นค่าตัวเลข
YYYYMM
รูปแบบการใช้งาน
PERIOD_DIFF(period1, period2)
period1คือช่วงเวลาหมายเลขที่ใหม่กว่า (ปลายทาง) เช่น202405period2คือช่วงเวลาหมายเลขเก่ากว่า (ต้นทาง) เช่น202401- ทั้งสองค่าต้องอยู่ในรูปแบบ
YYYYMM - ค่าที่คืนมาคือ
period1 - period2เป็นจำนวนเดือน
ตัวอย่างการใช้งาน
หาผลต่างของเดือนระหว่าง 202405 และ 202401
SQL
SELECT PERIOD_DIFF(202405, 202401) AS diff_months;
-- ผลลัพธ์: 4หาจำนวนเดือนระหว่าง 202501 กับ 202312
SQL
SELECT PERIOD_DIFF(202501, 202312) AS diff_months;
-- ผลลัพธ์: 1ตัวอย่างการประยุกต์ใช้งาน
แสดงข้อมูลลูกค้าที่สมัครเกิน 12 เดือนแล้ว
SQL
SELECT customer_id, join_period,
PERIOD_DIFF(YEAR(CURDATE()) * 100 + MONTH(CURDATE()), join_period) AS months_passed
FROM customers
WHERE PERIOD_DIFF(YEAR(CURDATE()) * 100 + MONTH(CURDATE()), join_period) > 12;หมายเหตุ
PERIOD_DIFF()คำนวณแบบเดือนต่อเดือนเท่านั้น ไม่สนใจวันในเดือนนั้น- ต้องแน่ใจว่า input อยู่ในรูปแบบ
YYYYMMที่ถูกต้อง (เช่น202413จะให้ค่าไม่ถูกต้องเพราะเดือนเกิน 12) - ผลลัพธ์จะเป็น
ค่าลบหากperiod1<period2