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" ) 
Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top