
PHP Mysql Gün, Ay, Yıl Olarak Veri Çekmek
Mysql'deki tablonuzu datetime formatında oluşturmuş olmanız gerekli. Eğer veriler bu şekilde depolanmışsa alttaki gruplama ve mysql'in week, month year fonksiyonlarını inceleyebilirsiniz.
SELECT COUNT(id), EXTRACT(MONTH FROM tarih), EXTRACT(YEAR FROM tarih) FROM bloggirdileri GROUP BY EXTRACT(YEAR_MONTH FROM tarih)
alttaki tarihlerden 5. aylardakileri listeleme;
2011-05-06 11:12:13 (<-- bunu)
2012-06-06 13:12:13
2010-02-06 14:52:13
2011-05-06 21:12:13 (<-- bunu)
2001-08-06 16:12:13
2011-09-06 18:12:43
2009-01-06 11:12:13
2012-02-06 12:17:55
2010-03-06 14:15:13
2012-05-06 11:19:23 (<-- ve bunu)
SELECT * FROM tablom WHERE MONTH(tarih_sutunum) = 5
2 tarih arasını listeleme
select * from tablom where tarih_sutunum between '2012-05-01' and '2012-05-31';
Mysql de son 15 günün verisini çekme
SELECT * FROM tabloAdi WHERE tarih BETWEEN DATE_SUB( CURDATE() ,INTERVAL 15 DAY ) AND CURDATE()
Mysql de son bugüne ait verileri çekme
SELECT * FROM tabloAdi WHERE DAY(tarih) = DAY(CURDATE());
Mysql de bu haftaya ait verileri çekme
SELECT * FROM tabloAdi WHERE WEEK(tarih) = WEEK(CURDATE());
Mysql de bu aya ait verileri çekme
SELECT * FROM tabloAdi WHERE MONTH(tarih) = MONTH(CURDATE());
Mysql de son 10 ay ile 5 ay arasındaki tarih aralığına göre veri çekme
select * from tabloAdi where tarih BETWEEN DATE_SUB( CURDATE() ,INTERVAL 10 MONTH ) AND DATE_SUB( CURDATE() ,INTERVAL 5 MONTH )
Geçen ay için ise
MONTH(CURDATE()-INTERVAL 1 MONTH)
Yıl ve ay olarak veri çekmek için
MONTH(kayit_tarihi) = MONTH(CURDATE()) and YEAR(kayit_tarihi) = YEAR(CURDATE())
YEAR(CURDATE()) -> bu yıl
MONTH(CURDATE()) -> bu ay
Eğer sadece gün, ay, yıl verileri yeterliyse date olarak tutmayı tavsiye ederim,
eğer gün, ay, yıl ve saat de gerekliyse timestamp olarak kaydedilebilir