2009-09-22 14 views

cevap

9

denemek olabilir:

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) 

kılavuzu alıntı:

DATEDIFF() döner expr1 – expr2 birinden itibaren gün içinde bir değer olarak ifade edilen diğerine tarih. expr1 ve expr2 tarih veya tarih ve zaman ifadeleridir.
Sadece değerlerin tarih bölümlerinde hesaplamada kullanılan vardır.

1

sadece tarihsaat çıkarabilir ve değerini döndürür:

select (şimdi() - aralık 2 gün) - (şimdi() - aralık 5 gün);

Sonuç bir tarih değil (bu durumda ondalık kodlanmış tarih - üç gün boyunca 3000000), ama tarih veri ve aynı veri türü olarak bir aralık düşünmek doğru değildir.

1

Ya da böyle timestampdiff() kullanın: (mikrosaniye, Zamanınızı, şimdi())

İlk parametre mysql datetime ünitesi, iş olabilir

timestampdiff "mikrosaniye, ikinci , dakika, saat, gün, yıl ", ve bu işlev, 3. parametre datetime eksi 2. parametre tarihidir.

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) 
İlgili konular