Domanda

Questo è un seguito per una domanda che ho avuto aiuto con qui ieri, ma è un problema leggermente diverso - sto cercando di verificare se un timestamp mysql di un record DB corrisponde a 7 giorni in passato (ignorando ore esecondi ecc.), Ma sto ottenendo una "colonna 'import_date' in dove la clausola è ambigua", qualcuno può vedere il problema?

Questo è il confronto della data: Timestamp, E.G 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" ) 
.

È stato utile?

Soluzione

Per quanto riguarda il tuo errore ambiguo è necessario disporre di 2 tabelle nella query sia con una colonna import_date.Dovresti usare

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

Solo per aggiungere che la tua query sopra sarà inefficiente in quanto non è Sargeable

Non sono abbastanza familiare con MySQL per sapere esattamente cosa sta facendo, ma sicuramente sarai meglio di riscriverlo come

WHERE `YourTableName`.`import_date` = x
.

o

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

come appropriato

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top