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
.