2009-09-22 6 views

Répondre

9

Qu'en est-il en utilisant datediff:

mysql> select abs(datediff('2009-09-18 00:00:00', '2009-10-17 00:00:00')); 
+-------------------------------------------------------------+ 
| abs(datediff('2009-09-18 00:00:00', '2009-10-17 00:00:00')) | 
+-------------------------------------------------------------+ 
|               29 | 
+-------------------------------------------------------------+ 
1 row in set (0.00 sec) 

Citant le manuel:

DATEDIFF() retours expr1 – expr2 exprimé en valeur dans les jours d'un date à l'autre. expr1 et expr2 sont des expressions de date ou de date et heure. Les parties de date des valeurs sont utilisées dans le calcul.

1

Vous pouvez simplement soustraire datetimes et il renvoie la valeur:

select (maintenant() - intervalle 2 jours) - (maintenant() - intervalle 5 jours); Le résultat n'est pas un datetime (c'est une date décimale codée - 3000000 pendant trois jours dans ce cas), mais il n'est pas correct de dire considérer un datetime et un intervalle comme le même type de données.

1

Ou utilisez TIMESTAMPDIFF() comme ceci:

TIMESTAMPDIFF (microseconde, YourTime, maintenant())

le premier paramètre est l'unité datetime mysql, peut être « microseconde, deuxième , minute, heure, jour, année ", et cette fonction signifie le troisième paramètre datetime moins le second paramètre datetime.

mysql> select timestampdiff(second, "2009-09-18 00:00:00", "2009-10-17 00:00:00"); 
+---------------------------------------------------------------------+ 
| timestampdiff(second, "2009-09-18 00:00:00", "2009-10-17 00:00:00") | 
+---------------------------------------------------------------------+ 
|                2505600 | 
+---------------------------------------------------------------------+ 
1 row in set (0.00 sec) 
Questions connexes