¿Cuál es la mejor manera de hacerlo siguiente:fecha igual o mayor que el de hoy en MySQL
SELECT * FROM users WHERE created >= today;
Nota: creada es un campo de fecha y hora.
¿Cuál es la mejor manera de hacerlo siguiente:fecha igual o mayor que el de hoy en MySQL
SELECT * FROM users WHERE created >= today;
Nota: creada es un campo de fecha y hora.
SELECT * FROM users WHERE created >= CURDATE();
pero creo que quiere decir created < today
SELECT * FROM users WHERE created >= NOW();
si la columna es del tipo de fecha y hora.
quiero decir hoy no ahora: D necesito hoy como no 2011-03-03 2011-03-03 14:02:02 – n00b
@ n00b: se devuelve filas mayores que hoy en día no se preocupe si el el tiempo está incluido –
digamos que es 02/02/2011 14:02:02 - los usuarios que han sido creados a las 10:02:02 no serían devueltos en su versión a pesar de que fueron creados "hoy" :) – n00b
SELECT * FROM users WHERE created >= now()
SELECT * FROM myTable WHERE DATE(myDate) = DATE(NOW())
Leer más: http://www.tomjepson.co.uk/tutorials/36/mysql-select-where-date-today.html
Si 'creado' es el tipo de fecha y hora
SELECT * FROM users WHERE created < DATE_ADD(CURDATE(), INTERVAL 1 DAY);
CURDATE() significa también '2013-05-09 00:00:00'
Gracias por esto. De hecho, necesitaba DATE_SUB (usado de la misma manera), pero esto me puso en el camino correcto. –
puede devolver todas las filas y luego usar la función php datediff dentro de una instrucción if, aunque eso supondrá una carga adicional en el servidor.
if(dateDiff(date("Y/m/d"), $row['date']) <=0){
}else{
echo " info here";
}
esto es muy lento en comparación con la base de datos seleccione – IgniteCoders
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"]
Esta es una solución muy cruda – IgniteCoders
El código siguiente trabajó para mí.
declare @Today date
Set @Today=getdate() --date will equal today
Select *
FROM table_name
WHERE created <= @Today
Si la columna tiene una función de índice y se aplica sobre la columna a continuación, el índice no funciona y escaneo completo de tabla se produce, causando consulta muy lento.
Para usar el índice y comparar datetime con la fecha actual/actual, se puede utilizar lo siguiente.
select * from users
where created >= CONCAT(CURDATE(), ' 00:00:00') && created < CONCAT(CURDATE(), ' 23:59:59')
'CURDATE()' devuelve solo la fecha no la hora –
no quise decir> = pero gracias CURDATE() es lo que necesitaba! – n00b
@ n00b ¿Cómo tienes usuarios que se crean en el futuro ...? Interesante =) Estaba usando esto para ver si una publicación ya había expirado. –