Question

C'est un suivi à une question que j'ai de l'aide ici hier, mais c'est un problème légèrement différent - j'essaie de vérifier si un horodatage MySQL d'un enregistrement de DB correspond à 7 jours dans le passé (Ignorer les heures etsecondes, etc.), mais je reçois une "colonne" importer_date "dans la clause ambiguë", peut-on voir le problème?

Ceci est la date de comparaison: Timestamp, E.G 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" ) 

Était-ce utile?

La solution

En ce qui concerne votre erreur ambiguë, vous devez disposer de 2 tables dans la requête à la fois avec une colonne import_date.Vous auriez besoin d'utiliser

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

Juste pour ajouter que votre requête ci-dessus sera inefficace car ce n'est pas Sargable

Je ne suis pas assez familier avec MySQL pour savoir exactement ce que ça va, mais vous serez certainement mieux de la réécrire comme

WHERE `YourTableName`.`import_date` = x

ou

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

selon le cas

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top