Pregunta

Esta es una continuación de una pregunta con la que recibí ayuda aquí ayer, pero es un problema ligeramente diferente: estoy tratando de verificar si una marca de tiempo de MySQL de un registro de base de datos coincide con 7 días en el pasado (ignorando horas y segundos, etc.) , pero aparece una "Columna 'fecha_importación' en la cláusula donde es ambigua", ¿alguien puede ver el problema?

Esta es la comparación de fechas:Marca de tiempo, por ejemplo, 2010-07-13 11:04:27

WHERE date_format( `import_date`, "%Y-%m-%d" ) =
    date_format( date_sub( now(), INTERVAL 11 DAY ), "%Y-%m-%d" ) 
¿Fue útil?

Solución

Con respecto a su error ambiguo, debe tener 2 tablas en la consulta, ambas con un import_date columna.necesitarías usar

WHERE date_format( `YourTableName`.`import_date`, "%Y-%m-%d" ) =
    date_format( date_sub( now(), INTERVAL 11 DAY ), "%Y-%m-%d" ) 

Solo para agregar que su consulta anterior será ineficiente ya que no lo es. SARGABLE

No estoy lo suficientemente familiarizado con MySQL para saber exactamente qué está haciendo, pero definitivamente será mejor que lo reescribas como

WHERE `YourTableName`.`import_date` = x

o

WHERE `YourTableName`.`import_date` between x and y

según sea apropiado

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