Pregunta

Disculpas si esto ya ha sido contestada muchas veces, pero no he podido encontrar la respuesta y estaba desconcertado.

Tengo una consulta de MySQL, que aparentemente muestra el resultado que quiero cuando lo ejecuto en la base de datos - sin embargo cuando funciono con la pregunta a través de PHP, no lo hace emite correctamente

.

En la base de datos, las fechas se almacenan como esto:

2009-08-13T00:00:00

Lo que quiero hacer es no mostrar datos que son mayores que la fecha de hoy. Así, en la cláusula where es hacer esto:

        WHERE dateField1 >= DATE_FORMAT(now(),'%Y-%m-%d') AND dateField2 >= DATE_FORMAT(now(),'%Y-%m-%d')

Mi intención es despojar a la porción de tiempo, ya que yo estaba luchando para encontrar una manera de convertir la pieza del tiempo del ahora () a la medianoche.

Esto parece funcionar cuando lo ejecuto en PHPMyadmin, pero cuando ejecuto el script php no lo hace.

¿Alguna idea?

Muchas Gracias!

¿Fue útil?

Solución

  

Esto parece funcionar cuando lo ejecuto en PHPMyadmin, pero cuando ejecuto el script php no lo hace.

Usted no está usando algo como sprintf para crear la cadena es usted? Si es así, tiene que escapar del % con otro %

En cualquier caso, puede utilizar la función DATE()

WHERE `dateField1` > DATE(NOW())

Otros consejos

nickf es correcto. Estoy de acuerdo con eso.

En el caso de utilizar sprintf () para realizar una llamada SQL, se puede dar vuelta a su consulta en esto:

  $query = sprintf("SELECT * FROM SOME_TABLE WHERE id=%s AND dateField1 >= DATE_FORMAT(now(),'%%Y-%%m-%%d') AND dateField2 >= DATE_FORMAT(now(),'%%Y-%%m-%%d')", $id);
//Then submit $query for SQL query processing...

PHP ver% como especificador de tipo cuando se utiliza sprintf ().

Para salir de esta, es necesario agregar una más% frente a MySQL cadena de formato, es decir, %% Y o %% %% m o d. La salida real para consulta MySQL se convertiría en% Y o% m o% d de nuevo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top