Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python和MySQL STR_至_日期_Python_Mysql - Fatal编程技术网

Python和MySQL STR_至_日期

Python和MySQL STR_至_日期,python,mysql,Python,Mysql,当我执行下面的代码时,我得到了下一个错误 Traceback (most recent call last): File "/home/test/python/main.py", line 18, in <module> calls = tel.getCallRecordings(member['id'], member['start_date']) File "/home/test/python/teldb.py", line 49, in getCallRecordings

当我执行下面的代码时,我得到了下一个错误

Traceback (most recent call last):
File "/home/test/python/main.py", line 18, in <module>
  calls = tel.getCallRecordings(member['id'], member['start_date'])
File "/home/test/python/teldb.py", line 49, in getCallRecordings
  'start_date': str(start_date),
File "/usr/local/lib/python2.5/site-packages/MySQL_python-1.2.3-py2.5-freebsd-8.1-RELEASE-amd64.egg/MySQLdb/cursors.py", line 159, in execute
TypeError: int argument required
为什么我会犯这个错误?谢谢。

您没有显示MIN_DURATION是什么,但是您使用了%MIN_durationd,因此它必须是int。您是否将其定义为字符串或浮点

您不需要在这样的SQL查询中使用%d,DB适配器理解您传递给它的类型,并将它们正确地插入查询中。将MIN_DURATION设置为整数,可能在代码中使用intMIN_DURATION,这样就可以工作了

顺便说一句:堆栈跟踪将重点放在strstart_日期上,但这仅仅是因为这是可执行语句中出现错误的最后一行源代码,因此它具有误导性。

您没有显示MIN_DURATION是什么,但您使用了%MIN_durationd,因此它必须是int。您是否将其定义为字符串或浮点

您不需要在这样的SQL查询中使用%d,DB适配器理解您传递给它的类型,并将它们正确地插入查询中。将MIN_DURATION设置为整数,可能在代码中使用intMIN_DURATION,这样就可以工作了


顺便说一句:堆栈跟踪将重点放在strstart_日期上,但这仅仅是因为这是可执行语句中出现错误的最后一行源代码,所以它具有误导性。

在构造包含str_to_date函数的sql查询字符串时,我遇到了类似的问题。我在python字符串上使用了.format运算符来参数化SQL查询。下面是一个运行良好的查询示例:

# Takes an input date and returns the manager's name during that period
input_string='"' + "{input_data}".format(input_data=input_data) + '"' 

sql_query='''select CONCAT(e.last_name, ",", e.first_name),STR_TO_DATE(from_date,'%Y-%m-%d'),STR_TO_DATE(to_date,'%Y-%m-%d') from dept_manager dm inner join employees e on e.emp_no=dm.emp_no where STR_TO_DATE({input_string},'%Y-%m-%d')>STR_TO_DATE(from_date,'%Y-%m-%d') and STR_TO_DATE({input_string},'%Y-%m-%d')<STR_TO_DATE(to_date,'%Y-%m-%d');'''.format(input_string=input_string)

在构造涉及str_to_date函数的sql查询字符串时,我遇到了类似的问题。我在python字符串上使用了.format运算符来参数化SQL查询。下面是一个运行良好的查询示例:

# Takes an input date and returns the manager's name during that period
input_string='"' + "{input_data}".format(input_data=input_data) + '"' 

sql_query='''select CONCAT(e.last_name, ",", e.first_name),STR_TO_DATE(from_date,'%Y-%m-%d'),STR_TO_DATE(to_date,'%Y-%m-%d') from dept_manager dm inner join employees e on e.emp_no=dm.emp_no where STR_TO_DATE({input_string},'%Y-%m-%d')>STR_TO_DATE(from_date,'%Y-%m-%d') and STR_TO_DATE({input_string},'%Y-%m-%d')<STR_TO_DATE(to_date,'%Y-%m-%d');'''.format(input_string=input_string)

最小持续时间取自配置。最小持续时间=1,即使使用最小持续时间也不工作。。顺便说一句,它的类型是int,与成员的类型相同,DURATION是从配置中获取的。最小持续时间=1,即使使用最小持续时间也不工作。。顺便说一下,它的类型是int,与member_id的类型相同