PHP Mysql Gün, Ay, Yıl Olarak Veri Çekme

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)

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


1 Yorum

  • Yorumlayan / 1 gün önce

    Yorumunuz Onaylandıktan Sonra Yayınlanacaktır.