J'ai besoin d'obtenir le nombre de jours contenus dans quelques dates sur MySQL.
Par exemple:
- La date d'arrivée est
12-04-2010
- Date de départ
15-04-2010
La différence de jour serait de 3
Qu'en est-il de la fonction DATEDIFF ?
Citant la page du manuel:
DATEDIFF () renvoie expr1 - expr2 exprimée sous forme de valeur en jours d'une date à l'autre. expr1 et expr2 sont des expressions de date ou de date et d'heure. Seules les parties de date des valeurs sont utilisées dans le calcul
Dans votre cas, vous utiliseriez:
mysql> select datediff('2010-04-15', '2010-04-12');
+--------------------------------------+
| datediff('2010-04-15', '2010-04-12') |
+--------------------------------------+
| 3 |
+--------------------------------------+
1 row in set (0,00 sec)
Mais notez que les dates doivent être écrites comme YYYY-MM-DD
et non DD-MM-YYYY
comme vous l'avez publié.
datediff()
méthode, sinon il renverra une valeur négative.Notez que si vous voulez compter PLEIN 24 jours entre 2 dates, dateiff peut renvoyer des valeurs erronées pour vous.
Comme l'indique la documentation:
ce qui se traduit par
select datediff('2016-04-14 11:59:00', '2016-04-13 12:00:00')
renvoie 1 au lieu de 0 attendu.
La solution utilise
select timestampdiff(DAY, '2016-04-13 11:00:01', '2016-04-14 11:00:00');
(notez l'ordre opposé des arguments par rapport à daté).Quelques exemples:
select timestampdiff(DAY, '2016-04-13 11:00:01', '2016-04-14 11:00:00');
renvoie 0select timestampdiff(DAY, '2016-04-13 11:00:00', '2016-04-14 11:00:00');
renvoie 1select timestampdiff(DAY, '2016-04-13 11:00:00', now());
renvoie le nombre de jours complets de 24h écoulés depuis le 13/04/2016 11:00:00 jusqu'à présent .J'espère que cela aidera quelqu'un, car au début, il n'est pas très évident de savoir pourquoi Datatiff renvoie des valeurs qui semblent inattendues ou erronées.
la source
datediff()
ettimestampdiff()
.Utilisez la
DATEDIFF()
fonction.Exemple tiré de la documentation:
la source
Je préfère TIMESTAMPDIFF car vous pouvez facilement changer l'unité si besoin est.
la source
Obtenir les jours entre la date actuelle et la date de destination
production
journées
la source
production::
j'espère que cela aidera quelqu'un à l'avenir
la source