2011-11-16 72 views
2

這給了我一個奇怪的錯誤。ActiveRecord:查詢varchar時日期無效

> Customer.where(:my_text_field => "05007062").first 
> Customer Load (0.9ms) SELECT `customers`.* FROM `customers` WHERE `customers`.`my_text_field` = '05007062' LIMIT 1 
ActiveRecord::StatementInvalid: Mysql2::Error: Invalid date: 2012-00-00 00:00:00: SELECT `customers`.* FROM `customers` WHERE `customers`.`my_text_field` = '05007062' LIMIT 1 
... 

有誰知道爲什麼會這樣?我在查詢中沒有看到任何日期。此外,這隻發生在生產中,而不是在開發機器上(都運行linux)。

我用Rails 3.1.0和mysql2 0.3.10

回答

0

聽起來像是你可能在你的督促服務器上的一個記錄了一些損壞的數據。你有沒有其他的代碼可以在db中創建記錄 - 包括日期?

+0

我確實有更新客戶記錄的代碼,但它更新了不同於此的屬性(其中一個屬於日期)。我檢查了my_text_field數據,它似乎是一致的。 – Sergey

+1

但在這個特定的記錄是由於某種原因的確是一個無效的日期(在不同的屬性上)。所以修復它解決了這個問題,謝謝。 – Sergey