Risposte:
SELECT * FROM users WHERE created >= CURDATE();
Ma penso che tu intenda created < today
SELECT * FROM myTable WHERE DATE(myDate) = DATE(NOW())
Per saperne di più: http://www.tomjepson.co.uk/tutorials/36/mysql-select-where-date-today.html
SELECT * FROM users WHERE created >= NOW();
se la colonna è di tipo datetime.
Se "creato" è di tipo datetime
SELECT * FROM users WHERE created < DATE_ADD(CURDATE(), INTERVAL 1 DAY);
CURDATE () significa anche "2013-05-09 00:00:00"
Se la colonna ha indice e una funzione è applicata sulla colonna, l'indice non funziona e si verifica la scansione della tabella completa, causando una query molto lenta.
Per utilizzare l'indice e confrontare il datetime con la data odierna / corrente, è possibile utilizzare quanto segue.
Soluzione per OP:
select * from users
where created > CONCAT(CURDATE(), ' 23:59:59')
Esempio per ottenere dati per oggi:
select * from users
where
created >= CONCAT(CURDATE(), ' 00:00:00') AND
created <= CONCAT(CURDATE(), ' 23:59:59')
Oppure usa TRA in breve
select * from users
where created BETWEEN
CONCAT(CURDATE(), ' 00:00:00') AND CONCAT(CURDATE(), ' 23:59:59')
Il codice seguente ha funzionato per me.
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"]
puoi restituire tutte le righe e utilizzare la funzione phiff dateiff all'interno di un'istruzione if, anche se ciò caricherà ulteriormente il server.
if(dateDiff(date("Y/m/d"), $row['date']) <=0 ){
}else{
echo " info here";
}
CURDATE()
ritorno solo data non ora