ใช้ LAST_DAY() คืนคาวันสุดท้ายของเดือนจากวันที่ใดๆ
ฟังก์ชัน LAST_DAY(date) รับ DATE/DATETIME/TIMESTAMP คืนค่า DATE ของวันสุดท้ายในเดือนนั้น (28/29/30/31)
ตัวอย่างสร้างตารางและข้อมูล
CREATE TABLE DemoTable (ShippingDate DATE);
INSERT INTO DemoTable VALUES
('2019-01-12'), ('2019-02-01'), ('2019-03-04'), ('2019-04-21');
ข้อมูลในตาราง
+--------------+ | ShippingDate | +--------------+ | 2019-01-12 | | 2019-02-01 | | 2019-03-04 | | 2019-04-21 | +--------------+
คำสั่งหาวันสุดท้ายของเดือนแต่ละแถว
SELECT LAST_DAY(ShippingDate) FROM DemoTable;
ผลลัพธ์
+------------------------+ | LAST_DAY(ShippingDate) | +------------------------+ | 2019-01-31 | | 2019-02-28 | | 2019-03-31 | | 2019-04-30 | +------------------------+
คำอธิบาย: คำนวณวันสุดท้ายอัตโนมัติ รองรับ Leap Year (กุมภาพันธ์ 29 วันที่ในปีอธิกสุรทิน)
ประยุกต์ใช้:
- หาช่วงวันที่ของเดือน:
WHERE date_col BETWEEN DATE_FORMAT(date_col, '%Y-%m-01') AND LAST_DAY(date_col) - คำนวณรายได้/สรุปยอดรายเดือน
- กำหนด Deadline ให้สิ้นสุดเดือน
ฟังก์ชันวันที่เกี่ยวข้อง:
DAY(LAST_DAY(date))จำนวนวันในเดือน (28-31)DATE_ADD(LAST_DAY(date), INTERVAL 1 DAY)วันแรกของเดือนถัดไปDATE_SUB(LAST_DAY(date), INTERVAL 1 MONTH)วันสุดท้ายเดือนก่อน