2009-09-22 13 views

Odpowiedz

9

Co na temat korzystania 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) 

Cytując instrukcję:

DATEDIFF() powraca expr1 – expr2 wyrażoną jako wartość w dniach od jednego Data do drugiej. Wyrażenia1 i wyr2 są wyrażeniami daty lub daty i czasu.
Tylko część daty z wartościami jest używana do obliczeń.

1

można po prostu odejmować datetimes i zwróci wartość:

wybierz (teraz() - przerwa 2 dni) - (teraz() - przerwa 5 dni);

Wynik nie jest datetime (jest to data zakodowana dziesiętnie - 3000000 na trzy dni w tym przypadku), ale nie jest właściwe, aby powiedzieć, datetime i interwał jako ten sam typ danych.

1

Albo użyć timestampdiff() tak:

timestampdiff (mikrosekundy, yourtime, teraz())

pierwszy parametr jest jednostka mysql datetime, może być „mikrosekund, drugi , minuta, godzina, dzień, rok ", a ta funkcja oznacza 3. datetime parametru minus 2. parametr 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)