2011-03-03 22 views

Respuesta

223
SELECT * FROM users WHERE created >= CURDATE(); 

pero creo que quiere decir created < today

+6

'CURDATE()' devuelve solo la fecha no la hora –

+3

no quise decir> = pero gracias CURDATE() es lo que necesitaba! – n00b

+13

@ 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. –

23
SELECT * FROM users WHERE created >= NOW(); 

si la columna es del tipo de fecha y hora.

+1

quiero decir hoy no ahora: D necesito hoy como no 2011-03-03 2011-03-03 14:02:02 – n00b

+0

@ n00b: se devuelve filas mayores que hoy en día no se preocupe si el el tiempo está incluido –

+2

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

2
SELECT * FROM users WHERE created >= now() 
12

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'

+0

Gracias por esto. De hecho, necesitaba DATE_SUB (usado de la misma manera), pero esto me puso en el camino correcto. –

-4

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";  
} 
+2

esto es muy lento en comparación con la base de datos seleccione – IgniteCoders

-1
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"]

+0

Esta es una solución muy cruda – IgniteCoders

0

El código siguiente trabajó para mí.

declare @Today date 

Set @Today=getdate() --date will equal today  

Select * 

FROM table_name 
WHERE created <= @Today 
0

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') 
Cuestiones relacionadas