Ricerca nel sito web

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)

Articoli correlati: