SQL ile iki tarih arasındaki gün sayısını bulmak

Baktım ki MySQL kategorisi altı çok boş kaldı. Şu günlerde onu geliştirmek için gelişmiş SQL kodlarından örnekler vermeye başladım ve buna devam edeceğim. Bu kez yine güzel bir MySQL fonksiyonunu kullanacağız. PHP ile 2 tarih arasındaki gün sayısını bulmak için uyguladığımız işlemleri yapmadan, tarih bilgilerini direkt veritabanından alırken bu işlemi halledeceğiz.

Daha önceki bir yazımda http://mysql-tips.blogspot.com/ sitesinden bahsetmiştim sizlere. Çok güzel örnek sql kodları veriyor bu yazar arkadaşımız ve ben de bunları olabildiğince size aktaracağım. Yine MySQL difference between dates in number of days başlığındaki örneği inceleyeceğiz.

Öncelikle bilmemiz gerekenler

Örnekte görülen tarih kolonu datetime, tarih2 ise date tipinde. Yani, gün farkını bulabilmeniz için kolonlarınız date ya da datetime formatında olmalılar.

SQL Kodu

[SQL]SELECT (
TO_DAYS( tarih2 ) – TO_DAYS( tarih )
)
FROM deneme[/SQL]

Kodumuz çok basit. Deneme tablosundaki tarih2 ile tarih kolonlarındaki tarihlerdeki gün sayısını TO_DAYS ile hesaplayıp, sonra aralarındaki farkı buluyoruz.

TO_DAYS fonksiyonu 0. yıldan başlamak üzere şu zamana kadar gecilen gün sayısını veriyor bizlere. Fonksiyonun güzel yanı MySQL 4.1 sürümleri öncesinde de yer alıyor oluşu 🙂