2010-07-13 2 views
2

Ceci est une suite à une question avec laquelle j'ai été aidé 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 db correspond 7 jours dans le passé (en ignorant les heures et les secondes, etc), mais je reçois un "Column 'import_date' dans où clause est ambigu", quelqu'un peut-il voir le problème?Horodatage et comparaison de date dans MySQL - erreur ambiguë

C'est la comparaison de date: Horodatage, 11:04:27

par exemple 2010-07-13
WHERE date_format(`import_date`, "%Y-%m-%d") = 
    date_format(date_sub(now(), INTERVAL 11 DAY), "%Y-%m-%d") 

Répondre

1

En ce qui concerne votre erreur ambiguë vous devez avoir 2 tables dans la requête à la fois avec une colonne import_date. Vous devez utiliser

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

Juste pour ajouter bien que votre requête ci-dessus sera inefficace car il ne SARGABLE

Je ne suis pas assez familier avec MySQL pour savoir exactement ce qu'il fait, mais certainement vous sera être mieux réécrivant comme

WHERE `YourTableName`.`import_date` = x 

ou

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

le cas échéant

+0

+1 Cela me semble bon ... –