我用python编写了一段代码,它使用mySQLdb模块在给定的一个月内搜索数据库中的日期。我得到了我想要的结果,但我也得到了一条错误信息。我相信这是因为日期字段中的通配符,但是我无法理解它是如何错误的,并且仍然返回记录。
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转到另一个文件,其中包含一个通用的select语句。日期字段设置为“日期”类型。
SELECT * FROM `Timesheet`
WHERE `Date` LIKE "2015-09-%"这是传递过来的SQL select语句,它返回所有的记录im之后,但它也返回
警告:不正确的日期值:“2015-09-%”用于第1行DBcon.execute(self.WeekSearch)中的“date”列
我不认为代码本身就是问题所在(虽然有点混乱和粗糙),我只是不知道如何删除这个错误,或者绕过它。
我找不到与日期格式化字段错误中的通配符相关的任何其他线程,请提供更多信息谢谢
发布于 2015-11-03 21:17:32
这种行为已经被其他人https://bugs.mysql.com/bug.php?id=38915 it seems发现了。一般来说,因为这是一个Warning,所以应该有很多值得关注的理由,但是如果它们打扰了您,那么can always supress them。
作为指向可能在某个时候不可用的urls的必要,第一个错误所建议的解决方案是,我复制:
建议修复: 使MySQL在执行类似的查询时不会引发char/datetime不匹配的警告。 临时修复方法是重写查询,如下所示: mysql>
select * from t where cast(d as char) like '2010-01-%';
https://stackoverflow.com/questions/33508944
复制相似问题