MySQL中获取日期之间的差值并计算薪水

假设您需要获取一个月的日期(JoiningDate – EndDate)之间的差,即天数来计算工资。假设每天的工资是300;因此,对于20天,它将是6000。以同样的方式,对于27天,它将是8100。

对于我们的示例,让我们首先创建一个表

create table DemoTable
   -> (
   -> JoinDate date,
   -> EndDate date
   -> ,
   -> Value int
   -> );

使用插入命令在表中插入一些记录-

insert into DemoTable values('2019-01-01','2019-01-31',500);

insert into DemoTable values('2019-02-12','2019-02-25',900);

使用select语句显示表中的所有记录-

select *from DemoTable;

输出结果

这将产生以下输出-

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

以下是计算工资的查询。对于日期差,使用DATEDIFF()-

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

输出结果

这将产生以下输出-

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