如何用 MySQL 获取日期之间的差值并计算工资?


假设你需要获取一个月日期(JoiningDate – EndDate)之间的差值,即用来计算工资的天数。假设日工资为 300;因此,20 天就是 6000。同理,27 天就是 8100。

对于本例,我们先创建一张表

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

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

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)

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

mysql> 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() -

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

输出

将产生以下输出 -

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

更新于: 30-Jun-2020

327 次查看

启动你的职业生涯

通过完成课程来获得认证

开始
广告