ใช้ DATEDIFF(end_date, start_date) หาจำนวนวัน แล้วคูณอัตราต่อวัน
สร้างตารางตัวอย่าง
mysql> CREATE TABLE DemoTable (
-> JoinDate DATE,
-> EndDate DATE,
-> Value INT
-> );
เพิ่มข้อมูลตัวอย่าง (Value = อัตราต่อวัน)
mysql> INSERT INTO DemoTable VALUES('2019-01-01', '2019-01-31', 500);
mysql> INSERT INTO DemoTable VALUES('2019-02-12', '2019-02-25', 900);
แสดงข้อมูล
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+------------+-------------+-------+ | JoinDate | EndDate | Value | +------------+-------------+-------+ | 2019-01-01 | 2019-01-31 | 500 | | 2019-02-12 | 2019-02-25 | 900 | +------------+-------------+-------+
คำสั่งคำนวณเงินรวม (ใช้ ABS ป้องกันลบ)
mysql> SELECT ABS(DATEDIFF(JoinDate, EndDate) * Value) AS Total FROM DemoTable;
ผลลัพธ์:
+-------+ | Total | +-------+ | 15000 | | 11700 | +-------+
คำอธิบาย: DATEDIFF('2019-01-01', '2019-01-31') = -30 | * 500 = -15000 | ABS = 15000 | แถวที่ 2: DATEDIFF = -13 | * 900 = -11700 | ABS = 11700