2011-06-08 21 views
28

yüzden şu anda buMySQL sorgusu şimdi tüm seçmek için bir sorguyu yürütmek istiyorum

2011-06-07 21:44:01 

gibi sitemde yapılan her aramanın bir tarih depolamak ediyorum belirli bir tarihte sahip kayıtları seçmek için tarih ne olursa eşittir, fakat sadece yıl/ay ve gün dikkate alınır, bu nedenle

mysql_query("SELECT tag from tags WHERE date = '2011-06-07'"); 

gibi olurdu ama dikkate tam olarak ne zaman (saat dakika saniye) almamalıdır değerler Bunu yapmanın bir yolu var mı?

cevap

51

DATE() işlevini kullanabilirsiniz.

SELECT `tag` 
    FROM `tags` 
WHERE DATE(`date`) = '2011-06-07' 

Ancak daha iyi performans için şunu kullanabilirsiniz ...

WHERE `date` 
BETWEEN '2011-06-07' 
    AND '2011-06-07 23:59:59' 
+1

üzerinde biraz yorumlamak Could performans artışı? Teşekkürler. –

+6

@CleverQuack 'DATE()' yi kullanarak bir fullscan neden olur. Hızlı yanıt için – alex

+0

Thx. Şerefe. –

4

Bu çalışması gerekir:

mysql_query("SELECT tag from tags WHERE date LIKE '2011-06-07%'"); 
İlgili konular