219 votes

Différence entre deux dates dans MySQL

Comment calculer la différence entre deux dates, au format YYYY-MM-DD hh: mm: ss et obtenir la valeur du résultat en secondes ou en millisecondes?

405voto

Devid G Points 904
SELECT TIMEDIFF('2007-12-31 10:02:00','2007-12-30 12:01:01') * 24*60*60;
-- result: 19013097600.000000 the difference in seconds for days.


SELECT TIMESTAMPDIFF(SECOND,'2007-12-30 12:01:01','2007-12-31 10:02:00'); 
-- result: 79259  the difference in seconds with the time.

48voto

kvista Points 3681

Si vous travaillez avec des colonnes DATE (ou pouvez les convertir en colonnes de date), essayez DATEDIFF (), puis multipliez-le par 24 heures, 60 minutes, 60 secondes (puisque DATEDIFF renvoie diff en jours). De MySQL:

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

par exemple:

 mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30 00:00:00') * 24*60*60
 

44voto

Kailas Points 344

Obtenez la différence de date en jours avec DATEDIFF

 SELECT DATEDIFF('2010-10-08 18:23:13', '2010-09-21 21:40:36') AS days;
+------+
| days |
+------+
|   17 |
+------+
 

OU

Reportez-vous au lien ci-dessous MySql différence entre deux horodatages en jours?

9voto

Romancha KC Points 457
SELECT TIMESTAMPDIFF(HOUR,NOW(),'2013-05-15 10:23:23')
   calculates difference in hour.(for days--> you have to define day replacing hour
SELECT DATEDIFF('2012-2-2','2012-2-1')

SELECT TO_DAYS ('2012-2-2')-TO_DAYS('2012-2-1')

4voto

ajreal Points 31456
select 
unix_timestamp('2007-12-30 00:00:00') - 
unix_timestamp('2007-11-30 00:00:00');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X