Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment calculer la différence entre deux dates dans MySQL

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 .