2010-07-13 49 views
2

這是一個後續問題,我昨天在這裏得到了幫助,但這是一個稍微不同的問題 - 我試圖檢查一個db記錄的mysql時間戳是否匹配過去7天(忽略小時和秒等),但我得到一個「列'import_date」where語句不明確「,任何人都可以看到問題嗎?MySQL中的時間戳和日期比較 - 模棱兩可的錯誤

這是日期比較: 時間戳,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") 

回答

1

關於你明確的錯誤,你必須在查詢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 

+0

+1對我來說聽起來不錯... – 2010-07-13 11:14:12