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
et le nombre de jours entre l'arrivée et le 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, JULIANDAY(arrival) - JULIANDAY(departure) AS date_difference, JULIANDAY(arrival) - JULIANDAY(departure) + 1 AS days_inclusive FROM travel;
Le résultat est :
identifiant | départ | arrivée | date_difference | jours |
---|---|---|---|---|
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, utilisez le JULIANDAY()
fonction, qui compte le nombre de jours depuis midi à Greenwich le 24 novembre 4714 av. Vous utilisez le JULIANDAY(date)
pour chacune des deux dates ; soustrayez-les simplement en utilisant un signe moins (-) :
JULIANDAY(arrival) - JULIANDAY(departure)
Dans la plupart des cas, ce que vous voulez vraiment, c'est le nombre de jours entre le premier rendez-vous et le deuxième rendez-vous inclusivement . Ensuite, vous devez ajouter 1 jour à la différence en jours :
JULIANDAY(arrival) - JULIANDAY(departure) + 1.