Comparação de carimbo de data e hora no MySQL - erro ambíguo
-
14-09-2020 - |
Pergunta
este é o acompanhamento de uma pergunta para a qual recebi ajuda aqui ontem, mas é um problema um pouco diferente - estou tentando verificar se um carimbo de data / hora mysql de um registro de banco de dados corresponde a 7 dias atrás (ignorando horas e segundos, etc.) , mas estou recebendo uma "Coluna 'import_date' na cláusula where é ambígua", alguém consegue ver o problema?
Esta é a comparação de datas:Carimbo de data e hora, por exemplo, 13/07/2010 11:04:27
WHERE date_format( `import_date`, "%Y-%m-%d" ) =
date_format( date_sub( now(), INTERVAL 11 DAY ), "%Y-%m-%d" )
Solução
Em relação ao seu erro ambíguo você deve ter 2 tabelas na consulta ambas com um import_date
coluna.Você precisaria usar
WHERE date_format( `YourTableName`.`import_date`, "%Y-%m-%d" ) =
date_format( date_sub( now(), INTERVAL 11 DAY ), "%Y-%m-%d" )
Apenas para acrescentar que sua consulta acima será ineficiente, pois não é SARGÁVEL
Não estou familiarizado o suficiente com o MySQL para saber exatamente o que ele está fazendo, mas definitivamente será melhor reescrevê-lo como
WHERE `YourTableName`.`import_date` = x
ou
WHERE `YourTableName`.`import_date` between x and y
como apropriado