Antworten:
SELECT * FROM users WHERE created >= CURDATE();
Aber ich denke du meinst created < today
SELECT * FROM myTable WHERE DATE(myDate) = DATE(NOW())
Lesen Sie mehr: http://www.tomjepson.co.uk/tutorials/36/mysql-select-where-date-today.html
SELECT * FROM users WHERE created >= NOW();
Wenn die Spalte vom Typ datetime ist.
Wenn 'Erstellt' Datums- / Uhrzeittyp ist
SELECT * FROM users WHERE created < DATE_ADD(CURDATE(), INTERVAL 1 DAY);
CURDATE () bedeutet auch '2013-05-09 00:00:00'
Wenn die Spalte einen Index hat und eine Funktion auf die Spalte angewendet wird, funktioniert der Index nicht und es erfolgt ein vollständiger Tabellenscan, was zu einer sehr langsamen Abfrage führt.
Um den Index zu verwenden und Datum und Uhrzeit mit dem heutigen / aktuellen Datum zu vergleichen, kann Folgendes verwendet werden.
Lösung für OP:
select * from users
where created > CONCAT(CURDATE(), ' 23:59:59')
Beispiel, um Daten für heute zu erhalten:
select * from users
where
created >= CONCAT(CURDATE(), ' 00:00:00') AND
created <= CONCAT(CURDATE(), ' 23:59:59')
Oder verwenden Sie ZWISCHEN kurz
select * from users
where created BETWEEN
CONCAT(CURDATE(), ' 00:00:00') AND CONCAT(CURDATE(), ' 23:59:59')
Der folgende Code hat bei mir funktioniert.
declare @Today date
Set @Today=getdate() --date will equal today
Select *
FROM table_name
WHERE created <= @Today
SELECT * FROM table_name WHERE CONCAT( SUBSTRING(json_date, 11, 4 ) , '-', SUBSTRING( json_date, 7, 2 ) , '-', SUBSTRING(json_date, 3, 2 ) ) >= NOW();
json_date ["05/11/2011"]
Sie können alle Zeilen zurückgeben und dann die PHP-Datediff-Funktion in einer if-Anweisung verwenden, obwohl dies den Server zusätzlich belastet.
if(dateDiff(date("Y/m/d"), $row['date']) <=0 ){
}else{
echo " info here";
}
CURDATE()
Rückkehr nur Datum nicht Zeit