Computer >> Máy Tính >  >> Lập trình >> MySQL

Nhận sự khác biệt giữa các ngày và tính lương với MySQL?


Giả sử bạn cần lấy chênh lệch giữa các ngày (Ngày tham gia - Ngày kết thúc) của một tháng, tức là số ngày để tính lương. Mức lương hàng ngày giả sử là 300; do đó trong 20 ngày, nó sẽ là 6000. Theo cách tương tự, trong 27 ngày, nó sẽ là 8100.

Đối với ví dụ của chúng tôi, trước tiên chúng ta hãy tạo một bảng

mysql> create table DemoTable
   -> (
   -> JoinDate date,
   -> EndDate date
   -> ,
   -> Value int
   -> );
Query OK, 0 rows affected (1.16 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable values('2019-01-01','2019-01-31',500);
Query OK, 1 row affected (0.37 sec)

mysql> insert into DemoTable values('2019-02-12','2019-02-25',900);
Query OK, 1 row affected (0.22 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Đầu ra

Điều này sẽ tạo ra kết quả sau -

+------------+-------------+-------+
| JoinDate   | EndDate     | Value |
+------------+-------------+-------+
| 2019-01-01 | 2019-01-31  | 500   |
| 2019-02-12 | 2019-02-25  | 900   |
+------------+-------------+-------+
2 rows in set (0.00 sec)

Sau đây là câu truy vấn để tính lương. Đối với chênh lệch ngày, DATEDIFF () được sử dụng -

mysql> select ABS(DATEDIFF(JoinDate,EndDate) * Value) AS Total from DemoTable;

Đầu ra

Điều này sẽ tạo ra kết quả sau -

+-------+
| Total |
+-------+
| 15000 |
| 11700 |
+-------+
2 rows in set (0.14 sec)