Ich habe eine Spalte date
, das ist ein Standard-Wert von CURRENT_TIMESTAMP
, zB: 2011-11-16 15:34:02
. Gibt es eine Möglichkeit, eine Bedingung, die in der mysql-Anweisung (nicht in php), um Zeilen abzurufen, die weniger als einen Tag alt? So etwas wie:
SELECT * FROM orders where date > 24 hours ago
Können Sie
timestampadd()
, um die Zeitstempel für 24 StundenDies ist äquivalent zu
Hinweis: die backticks um
date
, da es ein reserviertes Wort ist.select now() + interval 1 day
. Sie erhalten ein 'morgen' beantworten.>
statt=
.yup, kombinieren *date_sub* mit Intervall 1 Tag und curdate() und vielleicht etwas anderes
Dokumentation ist hier zu sehen http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-sub
Diese Anweisung gibt alle heutigen Zeilen:
CURDATE()
gibt das heutige Datum ein, so durchsucht die Aufzeichnungen ab Mitternacht.Können Sie auch die Differenz direkt mit
timestampdiff
Funktion Hexe ist ähnlichtimestampadd
.Ich denke, das kann nicht so optimiert wie die Verwendung
timestampadd
(weil es die Berechnung der Differenz für jede Zeile eine), aber es ist, meiner Meinung nach, besser lesbar und eine alternative, wenn Sie kümmern sich nicht um die Optimierung.