SQL Verilen daha eski verileri geri önlemek için hızlı yolu

3 Cevap php

(: M: s biçimi YMD h) Ben farklı şeyler için farklı tablolar yükleri ile oldukça karmaşık bir veritabanı var, her şey bir zaman damgası var

Ben SQL sorgusu sadece bir hafta önce, örneğin, belli bir zaman sonuçları sınırlamak bir yolu var mı?

Needbe Eğer ben UNix içine bu damgaları dönüştürmek için bir işlevi var

sqlToUnix($date);
//returns $unixTime

Bu nedenle, örneğin

mysql_query(SELECT id FROM entries WHERE entries.date >= $formattedDateString);

Teşekkürler!

Veritabanı tarihleri ​​formatında sadece bir hatırlatma: 2009-02-15 08:47:45

3 Cevap

Yani ARASINDA-deyim (MySQL 4.0 beri) ile tamamen mümkündür:

mysql_query("SELECT id FROM entries WHERE entries.date BETWEEN 'Y-M-D h:m:s' AND 'Y-M-D h:m:s'");

Ayrıca, bir hafta geçerli tarihten önce damgası hesaplamak için MySQL Online Documentation bakabilirsiniz.

Kendimi bir MSSQL kullanıcı değilim, ancak online ararken ben MySQL 5.0 için birkaç bilgi yararlı parçaları görebilirsiniz ...

curdate()
date_add()

Bu ile böyle bir WHERE şey oluşturmak mümkün olmalıdır ...

WHERE
   <field> >= date_add(curdate(), INTERVAL -7 DAY)

Başka yerlerde de belirtildiği gibi alan bir dize ise, kullanarak bir tarihe dönüştürmek STR_TO_DATE()

Evet, yazdım gibi daha büyük ve çıkış üzerindeki kısıtlamalar daha düşük yapabilirsiniz. Nerede sorun?

Saha damgası / datetime alan ama bir dize, MySQL işlevi STR_TO_DATE kullanın () if (http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html)