it-swarm.com.de

MySQL Wie kann man Daten aus der Tabelle auswählen, die heute aufgezeichnet wurden?

Verwenden Sie PHP und MySQL. In meiner Tabelle gibt es ein Datumsfeld (datetime), das von der Funktion NOW () sql aufgezeichnet wird. Beispielwert für Daten in diesem Feld ist 2010-10-07 10:57:36 . Wie kann ich alle Daten AUSWÄHLEN, die heute Tag-Monat-Jahr sind. Ich versuche, den Code wie folgt zu verwenden:

  SELECT * FROM table WHERE date=????
14
AJ OP

SELECT * FROM table where DATE(date)=CURDATE()

21

Versuche dies:

SELECT * FROM table WHERE date > CURDATE();

CURDATE() gibt das aktuelle Datum als 2011-10-07 zurück, der beim Vergleich von datetimes in 2011-10-07 00:00:00 umgewandelt wird.

Wenn Sie DATE(date) = CURDATE() verwenden, werden Sie eine Datumsumwandlung für every row in der Tabelle ausführen. Dies ist wirklich schlecht für Ihre Leistung, wenn Sie viele Zeilen haben und/oder die Abfrage häufig ausführen müssen. Stellen Sie außerdem sicher, dass Sie einen Index für date haben, andernfalls sind beide Methoden noch langsamer.

26
Kaivosukeltaja
SELECT * FROM tableName WHERE DATE(fieldDate) = DATE(NOW());
3
Bryan

Mit der date_format-Funktion können Sie problemlos zwischen verschiedenen Granularitäten wechseln:

Wähle alles vom selben Tag aus:

select * from table 
where date_format(date, '%Y-%m-%d') = date_format(now(), '%Y-%m-%d');

Ab dem gleichen Monat:

select * from table 
where date_format(date, '%Y-%m') = date_format(now(), '%Y-%m');

Aus demselben Jahr:

select * from table 
where date_format(date, '%Y') = date_format(now(), '%Y');

Von derselben Stunde:

select * from table 
where date_format(date, '%Y-%m-%d %H') = date_format(now(), '%Y-%m-%d %H');

und so weiter.

2
michael667
SET @day = '2017-12-12' ;

SELECT * FROM table WHERE dateColumn BETWEEN DATE(@day) AND DATE_ADD(DATE(@day), INTERVAL 1 DAY ) ;
1
Fredy

Versuche dies

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

my_date -> column name
1
vivek

verwenden Sie so etwas wie es funktioniert genau auf meinen Code (Access-Datenbank):

select * from Table t where t.column>=Date() and t.column< Date() + 1
0
Selman Akdemir