如何修复Python在MySQL数据库中输入错误值的问题

如何修复Python在MySQL数据库中输入错误值的问题,python,mysql,Python,Mysql,我正试图使用Python向MySQL数据库添加值,但由于某些原因,它放置了不同的数字 我尝试了许多语法,并在网上寻求帮助,但没有运气。我使用的是mysql.connector,Python3.7 我期望输出: (12, 'TEST_JOB', 'SOME_TESTING', '20/7/2019') 但我得到了: (12, 'TEST_JOB', 'SOME_TESTING', '0.001415127715205547') 代码: TODAY=date.TODAY().strftime(“

我正试图使用Python向MySQL数据库添加值,但由于某些原因,它放置了不同的数字

我尝试了许多语法,并在网上寻求帮助,但没有运气。我使用的是mysql.connector,Python3.7

我期望输出:

(12, 'TEST_JOB', 'SOME_TESTING', '20/7/2019')
但我得到了:

(12, 'TEST_JOB', 'SOME_TESTING', '0.001415127715205547')
代码:

TODAY=date.TODAY().strftime(“%d/%m/%Y”)
def将_行添加到_数据库(行=“”):
如果行=“”:返回“这不会发生,错误的行”
query=f“插入my_表(col1、col2、col3)值(%s,%s,{TODAY})”
cursor.execute(查询,行)
commit()连接
将行添加到数据库(“测试作业”、“某些测试”)

来自@furas的回答解决了问题


您应该像在
'12345'
-
'{TODAY}'
中一样使用
'
。如果不使用
,则SQL将日期
20/7/2019
视为除法,从而给出结果
0.001415127715205547


@furas的回答解决了这个问题


您应该像在
'12345'
-
'{TODAY}'
中一样使用
'
。如果不使用
,则SQL将日期
20/7/2019
视为除法,从而给出结果
0.001415127715205547


检查最后一个字段的数据类型是否为
date
而不是其他类型。当我使用print(今天)时,它打印2019年7月20日,我几乎可以肯定这是关于查询的语法。日期字符串被解释为除法运算。今天应该是
行的一部分,所以values子句是
值(%s,%s,%s)
。好的,但是当我尝试语法:query=f“INSERT INTO my_table(col1,col2,col3)values(%s,%s,'12345')”时,它起作用了。你应该像
'12345'
-
'{TODAY}
一样使用
'。如果不使用
,则SQL会将日期
20/7/2019
视为除法,并给出结果
0.001415127715205547
检查最后一个字段的数据类型是否为
date
,而不是其他类型当我使用print(今天)时,它会打印20/7/2019,我几乎可以肯定这是关于查询的语法日期字符串被解释为除法运算。今天应该是
行的一部分,所以values子句是
值(%s,%s,%s)
。好的,但是当我尝试语法:query=f“INSERT INTO my_table(col1,col2,col3)values(%s,%s,'12345')”时,它起作用了。你应该像
'12345'
-
'{TODAY}
一样使用
'。如果不使用
,则SQL将日期
20/7/2019
视为除法,从而给出结果
0.001415127715205547