Respostas:
SELECT * FROM users WHERE created >= CURDATE();
Mas acho que você quer dizer created < today
SELECT * FROM myTable WHERE DATE(myDate) = DATE(NOW())
Leia mais: http://www.tomjepson.co.uk/tutorials/36/mysql-select-where-date-today.html
SELECT * FROM users WHERE created >= NOW();
se a coluna for do tipo data e hora.
Se 'criado' for do tipo data e hora
SELECT * FROM users WHERE created < DATE_ADD(CURDATE(), INTERVAL 1 DAY);
CURDATE () significa também '2013-05-09 00:00:00'
Se a coluna tiver índice e uma função for aplicada na coluna, o índice não funcionará e ocorrerá uma verificação completa da tabela, causando uma consulta muito lenta.
Para usar o índice e comparar data e hora com a data de hoje / atual, é possível usar o seguinte.
Solução para OP:
select * from users
where created > CONCAT(CURDATE(), ' 23:59:59')
Exemplo para obter dados de hoje:
select * from users
where
created >= CONCAT(CURDATE(), ' 00:00:00') AND
created <= CONCAT(CURDATE(), ' 23:59:59')
Ou use BETWEEN para abreviar
select * from users
where created BETWEEN
CONCAT(CURDATE(), ' 00:00:00') AND CONCAT(CURDATE(), ' 23:59:59')
SELECT * FROM users WHERE created >= now()
O código abaixo funcionou para mim.
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 ["11/05/2011"]
você pode retornar todas as linhas e, em seguida, usar a função php datediff em uma instrução if, embora isso coloque uma carga extra no servidor.
if(dateDiff(date("Y/m/d"), $row['date']) <=0 ){
}else{
echo " info here";
}
CURDATE()
retornar apenas data não hora