2010-03-22 31 views

cevap

171

Ne DATEDIFF işlevi hakkında olurdu? kılavuzun sayfa aktaran

: - ifade2 diğer bir tarihinden itibaren gün içinde bir değer olarak ifade edilen

DATEDIFF() expr1 döndürür. expr1 ve expr2 tarih veya tarih ve zaman ifadeleridir.

mysql> select datediff('2010-04-15', '2010-04-12'); 
+--------------------------------------+ 
| datediff('2010-04-15', '2010-04-12') | 
+--------------------------------------+ 
|         3 | 
+--------------------------------------+ 
1 row in set (0,00 sec) 

Fakat tarih YYYY-MM-DD olarak yazılır ve gereken not: değerlerin Sadece tarih parçalar Senin durumunda


, kullanmak istediğiniz hesaplamada kullanılmaktadır DD-MM-YYYY yayınladığınız gibi.

+0

evet ben tarih biçimi hakkında unuttum; p size – Audel

+2

dip not teşekkür YYYY-AA-DD, ISO 8601 standardıdır, bu yüzden herkes bunu kullanmalıdır. Çok pratik. –

+0

** Not **: İlk argüman 'datediff()' metodunun ikinci argümanından daha büyük olmalıdır, aksi takdirde negatif değer döndürecektir. – Shashanth

14

DATEDIFF() işlevini kullanın. belgelerinden

Örnek: gerektiği takdirde kolayca birimini değiştirebilir çünkü

SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30'); 
    -> 1 
25

Not: FULL 24h gün içinde 2 tarih arasında saymak istiyorsanız, tarih sizin için yanlış değerleri döndürebilir. dokümantasyon olarak

devletler: değerlerden

Sadece tarih parçaları hesaplamada kullanılır.

select datediff('2016-04-14 11:59:00', '2016-04-13 12:00:00')

getiri 1 yerine beklenen 0

Çözelti select timestampdiff(DAY, '2016-04-13 11:00:01', '2016-04-14 11:00:00'); (DateDiff karşılaştırarak argümanlar not karşıt düzeni) kullanarak sonuçlanan

.

Bazı örnekler:

  • select timestampdiff(DAY, '2016-04-13 11:00:01', '2016-04-14 11:00:00'); döner 0
  • select timestampdiff(DAY, '2016-04-13 11:00:00', '2016-04-14 11:00:00'); döner 1 döner kaç tam 24 saat gün 2016-04-13 11:00 geçti
  • select timestampdiff(DAY, '2016-04-13 11:00:00', now());: 00'e kadar.

Birisine yardım edeceğini umarız, çünkü başlangıçta bu durumun neden beklenmedik veya yanlış olduğu gibi görünen değerler döndürdüğü açık değildir. i soruyu yaptığında

İlgili konular