Сравнение меток времени и дат в MySQL - неоднозначная ошибка - PullRequest
2 голосов
/ 13 июля 2010

это продолжение вопроса, с которым я получил помощь вчера, но это немного другая проблема - я пытаюсь проверить, совпадает ли отметка времени mysql записи БД с 7 днями в прошлом (игнорируя секунд и т. д.), но я получаю «Столбец import_date», где предложение неоднозначно », кто-нибудь может увидеть проблему?

Это сравнение даты: Отметка времени, например, 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" ) 

1 Ответ

1 голос
/ 13 июля 2010

Что касается вашей неоднозначной ошибки, в запросе должно быть 2 таблицы, каждая из которых содержит столбец import_date.Вам нужно будет использовать

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

Просто чтобы добавить, что ваш запрос выше будет неэффективным, поскольку он не SARGABLE

Я недостаточно знаком с MySQLчтобы точно знать, что он делает, но определенно вам лучше переписать его как

WHERE `YourTableName`.`import_date` = x

или

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

в зависимости от ситуации

...