Сравнение отметки времени и даты в MySQL – неоднозначная ошибка

StackOverflow https://stackoverflow.com/questions/3236209

  •  14-09-2020
  •  | 
  •  

Вопрос

это продолжение вопроса, с которым мне вчера здесь помогли, но это немного другая проблема - я пытаюсь проверить, соответствует ли временная метка 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" ) 
Это было полезно?

Решение

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

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

Просто добавлю, что ваш запрос выше будет неэффективным, поскольку это не так. САРГАБЕЛЬНЫЙ

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

WHERE `YourTableName`.`import_date` = x

или

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

по мере необходимости

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top