Unixtime &

3 Cevap php

I have a field on my table which is called X, and I store unixtime(php -> time()). My question is:

6,2009 8,2009 vb: nasıl benim DB gibi bir şey her ay listeleyebilirsiniz.

Ve benim ikinci soru:

Nasıl bir sorgu aynı alan X bir ay ve yıl dayanan tüm bilgileri (i unixtime depolamak) listelemek için yapabilirsiniz, ben bu işe yaramazsa biliyorum, ama sen daha iyi anlayabiliyorum mabe: burada {[(0) }] = '06 .2009 '

Herhangi bir çözüm?

3 Cevap

  • Tüm ayları listeleyin:

    SELECT DISTINCT EXTRACT(YEAR_MONTH FROM FROM_UNIXTIME(X)) FROM MyTable;
    
  • Verilen yıl ve ile tüm satırları iade ay:

    SELECT * FROM MyTable
    WHERE EXTRACT(YEAR_MONTH FROM FROM_UNIXTIME(X)) = 200906;
    

Bu deneyin

  1. SEÇ FROM_UNIXTIME (X, '% m.% Y') TABLO GRUP TARAFINDAN FROM_UNIXTIME DAN (X, '% m.% Y')

  2. SEÇİN * FROM_UNIXTIME (X, '% m.% Y') = '06 .2009 'TABLO DAN

Bye

İlk soruyu cevaplamak için, gruplandırma bu yapardın:

SELECT FROM_UNIXTIME(timestamp_column, '%c.%Y') AS month, some_other_column FROM table_name GROUP BY month;

İkinci soruya gelince, bu yapmak için çalışıyoruz bağlıdır. Örneğin:

SELECT AVG(payment), SUM(*), FROM_UNIXTIME(timestamp_column, '%c.%Y') AS month, some_other_column FROM table_name WHERE timestamp_column BETWEEN UNIX_TIMESTAMP(200906) AND UNIX_TIMESTAMP(200907) - 1 GROUP BY month;

Ödemelerin ortalama ve her bir grup için satır sayısını (toplamı) dönecekti.

, Belirli bir süre bilgi Gruplandırılmamış olsun gibi sorgu azaltmak için:

SELECT payment, some_other_column FROM table_name WHERE timestamp_column BETWEEN UNIX_TIMESTAMP(200906) AND UNIX_TIMESTAMP(200907) - 1;