2015-11-03 94 views
0

我已經寫了一段代碼在Python中,它使用mySQLdb模塊在給定的月份內搜索數據庫的日期。我得到了我想要的結果,但我也收到了一條錯誤消息。我相信它是因爲日期字段中的通配符,但我無法理解它如何出錯並仍然返回記錄。上述MYSQLdb/Python值錯誤,但仍然得到所需的結果

def GetWeeks(self): 
     guiAction = guiConnections() 
     #creates the DBconnection as a tuple, with cursor as index [0] 
     DBcon = DBconnect() 
     self.Month = "09" 
     self.Year = "2015" 
     #Creates the SQL statement with the DBsearch function 
     self.WeekSearch = DBsearch((self.Year)+"-"+(self.Month)+"-"+"__", ("Date"),Keyword = "LIKE") 
     DBcon[0].execute(self.WeekSearch) 
     c = DBcon[0].fetchall() 
     for row in c: 
      print row 
    GetWeeks(self) 

是主要功能,DBSearch所去,在一個通用的SQL SELECT語句的另一個文件。日期字段設置爲「日期」類型。

SELECT * FROM `Timesheet` 
WHERE `Date` LIKE "2015-09-%" 

這是一個被通過的SQL SELECT語句,並經過IM返回所有的記錄,但它也返回

警告:不正確的日期值:「2015-09-%」列'日期「在第1行 DBcon [0] .execute(self.WeekSearch)

我不認爲代碼本身是問題(雖然凌亂,有點粗糙)我只是不確定如何刪除此錯誤,或四處走動。

我找不到,涉及到日期格式字段錯誤通配符任何其他線程, 樂意爲您提供更多信息 感謝

回答

0

這種行爲已被他人from whatit seems已經發現。一般來說,這是一個Warning應該有很多理由擔心,但如果他們正在竊聽你can always supress them

至於指向的URL可能在某些時候變得不可用的必需品,頒發的第一錯誤的建議解決方案是,我複製:

建議的修復:

使MySQL在執行LIKE查詢時不會引發char/datetime不匹配的警告。

一個臨時的解決辦法是重寫查詢,像這樣:

的mysql>select * from t where cast(d as char) like '2010-01-%';

+0

所以我的理解它,只是因爲我要問SQL搜索日期格式的數據,如字符串?該錯誤報告的確表明,刪除此警告是建議修復它們的結束,並且我正在從搜索中獲得我想要的結果,所以我認爲我現在只是忽略它。謝謝 – SidSpace

+0

這就是我所理解的。無論哪種方式,大多數人都同意它不會影響返回的結果,所以這是一個安全的解決方案。 –

相關問題