2011-01-05 11 views
4

Ich habe eine MySQL-Datenbank, die Datetime in einem Feld, in diesem Format enthält:Nur prüft Datum von Datetime-Feld

'2011-01-04 16:32:49' 

Wie ich Ergebnisse herauszufiltern basierend auf dieser Datumzeit, so dass es nur die Ergebnisse von heute zeigt . im Grunde möchte ich nur mit dem Datumsteil des Feldes vergleichen.

Kann ich so etwas tun?

Select * from table where timestamp.date() = now().date 

Antwort

3

Verwendung DATE:

SELECT * FROM table 
WHERE DATE(timestamp) = DATE(now()) 

Eine weitere Alternative, die den Index auf timestamp zu verwenden, in der Lage, wenn Sie eine haben:

SELECT * FROM table 
WHERE timestamp >= DATE(now()) 
AND timestamp < DATE(now()) + interval 1 day 
+0

danke. Das hat wunderbar funktioniert. Wird akzeptiert, sobald das Zeitlimit abgelaufen ist. – xbonez

1

Ja, Sie können aber die Spalte, die die speichert Das DateTime-Feld in Ihrer Datenbank muss lediglich referenziert werden, Sie sollten keine .date() - Funktion darauf aufrufen.

1

Für mySQL, dies wäre:

Select * from table where DATEDIFF (NOW(), Zeitstempel) = 0

Diese Sie nur Aufzeichnungen geben würde, in dem das Datum heute ist.

1
Select * from table where DATE_FORMAT(timestamp, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d')