Sonuçlarından tarihleri ​​hesaplamak için en iyi yolu?

5 Cevap php

Ben bir veritabanı tablo var. Bu birkaç yüz girdileri vardır ve her giriş timestamped olduğunu. Ben herhangi bir gün yinelenen sahip değil, her gün sadece çıkış için arıyorum ve ben.

Data:
2009-02-04 06:20:27
2009-02-04 06:20:27
2009-02-05 06:20:27
2009-02-07 06:20:27
2009-02-07 06:20:27
2009-02-07 06:20:27

Output should only be (time is irrelevant):
2009-02-04 06:20:27
2009-02-05 06:20:27
2009-02-07 06:20:27

Bunu gerçekleştirmek için en iyi yolu nedir? Ben gerçekten her satırda Bisiklet ve başka birini karşılaştırmak? Sadece verimli görünmüyor. Herhangi bir fikir / ipuçları?

5 Cevap

Sen mysql DISTINCT anahtar sözcüğünü kullanarak veritabanı düzeyinde bunu yapmak isterim:

SELECT DISTINCT date
FROM table

Bu yinelenen tarihler varsa o kadar, sadece tek bir döndürülür yapacaktır. Bu konuda daha fazla okuyun here.

Eğer sadece sorguda "DISTINCT" damgası için seçemiyorum?

Kez (örnekten emin değilim) her gün değişir eğer Yoksa mysql TARİH işlevi kullanılarak sineğin sadece bir tarih damgası sütun dönüştürebilirsiniz. O sütun üzerinde kullanılır eğer bu dizin kullanımını engelleyebilir unutmayın.

örn.

SELECT DISTINCT DATE(timestamp_column) FROM table

Bu zaman damgası zaman parçası kaldırmak olacaktır.

Bu çift damgalarını basar, ancak bugüne kadar farklı olmalıdır.

SELECT DISTINCT CAST(timestamp AS DATE), timestamp, FROM table.
SELECT DISTINCT CAST(data AS DATE)
    FROM DataTable;

Bu sefer bölümünü düşer, ve sonra benzersiz TARİH değerleri verir.

TARİH () Fonksiyonu bir datetime alandan tarihini çıkartacaktır. Bunu gruba bunun sonucu kullanabilirsiniz. Bu gibi kullanılır:

SELECT fields FROM table WHERE condition GROUP BY DATE(datefield)