Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีหาวันสุดท้ายของทุกเดือนใน MySQL ด้วย LAST_DAY

ใช้ 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) วันสุดท้ายเดือนก่อน