首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQLdb/Python值错误但仍得到所需结果

问MYSQLdb/Python值错误但仍得到所需结果
EN

Stack Overflow用户
提问于 2015-11-03 20:58:44
回答 1查看 40关注 0票数 0

我用python编写了一段代码,它使用mySQLdb模块在给定的一个月内搜索数据库中的日期。我得到了我想要的结果,但我也得到了一条错误信息。我相信这是因为日期字段中的通配符,但是我无法理解它是如何错误的,并且仍然返回记录。

代码语言:javascript
复制
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语句。日期字段设置为“日期”类型。

代码语言:javascript
复制
SELECT * FROM `Timesheet`
WHERE `Date` LIKE "2015-09-%"

这是传递过来的SQL select语句,它返回所有的记录im之后,但它也返回

警告:不正确的日期值:“2015-09-%”用于第1行DBcon.execute(self.WeekSearch)中的“date”列

我不认为代码本身就是问题所在(虽然有点混乱和粗糙),我只是不知道如何删除这个错误,或者绕过它。

我找不到与日期格式化字段错误中的通配符相关的任何其他线程,请提供更多信息谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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-%';

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33508944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档