Mysql'de birkaç tarihin içerdiği gün sayısını almam gerekiyor. ÖrneğinMysql'deki iki tarih arasındaki fark gün sayısı nasıl alınır?
: Çıkış 12-04-2010 tarihi Çıkış tarihi 15-04-2010 gündüz farkı 3
Mysql'de birkaç tarihin içerdiği gün sayısını almam gerekiyor. ÖrneğinMysql'deki iki tarih arasındaki fark gün sayısı nasıl alınır?
: Çıkış 12-04-2010 tarihi Çıkış tarihi 15-04-2010 gündüz farkı 3
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.
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
Ben TIMESTAMPDIFF tercih ederim.
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 0select 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çtiselect 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
evet ben tarih biçimi hakkında unuttum; p size – Audel
dip not teşekkür YYYY-AA-DD, ISO 8601 standardıdır, bu yüzden herkes bunu kullanmalıdır. Çok pratik. –
** 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