php
  • mysql
  • timestamp
  • 2011-08-03 25 views 8 likes 
    8

    Quiero limitar mi consulta a los resultados que se han ingresado en los últimos 10 días. La columna TIMESTAMP se llama Fecha. ¿Cómo lo hago?MySQL seleccionar solo donde Timestamp es de los últimos 10 días

    $result = mysql_query("SELECT * FROM Posts WHERE (City = '$city2') ORDER by Comments DESC LIMIT 5"); 
    

    Gracias

    Respuesta

    20
    SELECT * 
    FROM Comments 
    WHERE (City = '$city2') AND (`Date` > DATE_SUB(now(), INTERVAL 10 DAY)); 
    

    Nota: llamar a una columna 'Fecha' es una mala práctica, ya que es una palabra reservada.

    +0

    ... ¡y cómo! – Keng

    +0

    lo siento, he publicado una consulta incorrecta. Intenté usar esto, se ve bien, pero no obtengo ningún resultado. Sin embargo, todas mis publicaciones fueron ingresadas ayer. (1 día de distancia). – lisovaccaro

    +2

    confirme que su campo de fecha contiene las fechas correctas, y en realidad es un campo de fecha y hora. Si se trata de una int (por ejemplo, marca de tiempo de unix), esta consulta no funcionará y deberá usar unix_timestamp/from_unixtime para convertir según corresponda. –

    3

    intento con DATE_SUB

    select * from Comments 
    where City = '{$city2}' and 
    `Date` > date_sub(now(), interval 10 day) 
    
    12

    Puede utilizar DATEDIFF o, como ya se ha publicado, DATE_SUB. Además, sugiero no usar palabras reservadas como "Fecha" para los nombres de las columnas. Ejemplo de su código:

    WHERE DATEDIFF(NOW(), `Date`) < 10 
    
    +0

    ¿sería '<=' 10? – Keng

    +0

    Supongo, sí. – Andrew

    Cuestiones relacionadas