Ottieni la differenza tra le date e calcola lo stipendio con MySQL?
Diciamo che devi ottenere la differenza tra le date (JoiningDate – EndDate) di un mese, ovvero i giorni per calcolare lo stipendio. La paga giornaliera è diciamo 300; quindi per 20 giorni sarà 6000. Allo stesso modo per 27 giorni sarà 8100.
Per il nostro esempio, creiamo prima una tabella
mysql> create table DemoTable
-> (
-> JoinDate date,
-> EndDate date
-> ,
-> Value int
-> );
Query OK, 0 rows affected (1.16 sec)
Inserisci alcuni record nella tabella utilizzando il comando di inserimento:
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)
Visualizza tutti i record dalla tabella utilizzando l'istruzione select :
mysql> select *from DemoTable;
Produzione
Ciò produrrà il seguente output:
+------------+-------------+-------+
| JoinDate | EndDate | Value |
+------------+-------------+-------+
| 2019-01-01 | 2019-01-31 | 500 |
| 2019-02-12 | 2019-02-25 | 900 |
+------------+-------------+-------+
2 rows in set (0.00 sec)
Di seguito è riportata la query per calcolare lo stipendio. Per la differenza di data, viene utilizzato DATEDIFF() :
mysql> select ABS(DATEDIFF(JoinDate,EndDate) * Value) AS Total from DemoTable;
Produzione
Ciò produrrà il seguente output:
+-------+
| Total |
+-------+
| 15000 |
| 11700 |
+-------+
2 rows in set (0.14 sec)