2009-09-22 13 views

Respuesta

9

Qué acerca del uso 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) 

Citando el manual:

DATEDIFF() vuelve expr1 – expr2 expresado como un valor en días de un fecha para el otro. expr1 y expr2 son expresiones de fecha o de fecha y hora.
Solo la fecha de las partes de los valores es utilizada en el cálculo.

1

Usted sólo puede restar datetimes y se devolverá el valor:

select (now() - intervalo 2 day) - (now() - interval 5 day);

El resultado no es una fecha y hora (es una fecha codificada decimal - 3000000 durante tres días en este caso), pero no es correcto considerar una fecha y un intervalo como el mismo tipo de datos.

1

O utilizar TIMESTAMPDIFF() como esto:

TIMESTAMPDIFF (microsegundo, yourtime, ahora())

El primer parámetro es la unidad de fecha y hora MySQL, puede ser "microsegundo, segundo , minuto, hora, día, año ", y esta función significa el 3er parámetro datetime menos el 2do parámetro 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) 
Cuestiones relacionadas