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

คำนวณเงินเดือนจากความต่างวันที่ใน MySQL

ใช้ 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