Problème :
Vous avez deux colonnes de type date et vous souhaitez calculer la différence entre elles.
Exemple :
Dans le travel table, il y a trois colonnes :id , departure , et arrival . Vous souhaitez calculer la différence entre arrival et departure , ou le nombre de jours depuis arrival au départ inclusivement.
Le travel le tableau ressemble à ceci :
| identifiant | départ | arrivée |
|---|---|---|
| 1 | 2018-03-25 | 2018-04-05 |
| 2 | 2019-09-12 | 2019-09-23 |
| 3 | 2018-07-14 | 2018-07-14 |
| 4 | 2018-01-05 | 2018-01-08 |
Solution :
SELECT id, departure, arrival, DATEDIFF(arrival, departure) AS date_difference, DATEDIFF(arrival, departure) + 1 AS days_inclusive FROM travel;
Le résultat est :
| identifiant | départ | arrivée | date_difference | jours_inclus |
|---|---|---|---|---|
| 1 | 2018-03-25 | 2018-04-05 | 11 | 12 |
| 2 | 2019-09-12 | 2019-09-23 | 11 | 12 |
| 3 | 2018-07-14 | 2018-07-14 | 0 | 1 |
| 4 | 2018-01-05 | 2018-01-08 | 3 | 4 |
Discussion :
Pour compter la différence entre les dates dans MySQL, utilisez le DATEDIFF(enddate, startdate) une fonction. La différence entre startdate et enddate est exprimé en jours. Dans ce cas, la enddate est arrival et la startdate est departure .
Dans la plupart des cas, cependant, ce que vous voulez vraiment, c'est le nombre de jours entre le premier rendez-vous et le deuxième rendez-vous inclusivement . Vous devez ajouter 1 jour à la différence :DATEDIFF(arrival, departure) + 1 .