Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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
Html DatabaseError:要执行的第一个参数必须是python中的字符串或unicode查询_Html_Sql Server_Python 2.7_Pandas_Flask - Fatal编程技术网

Html DatabaseError:要执行的第一个参数必须是python中的字符串或unicode查询

Html DatabaseError:要执行的第一个参数必须是python中的字符串或unicode查询,html,sql-server,python-2.7,pandas,flask,Html,Sql Server,Python 2.7,Pandas,Flask,我试图将从中的日期选择器中选择的日期返回到python代码中的sql查询中。我还尝试使用encode(utf-8)删除unicode字符串,但仍然出现了错误 我是python新手。谁能帮我找出解决这个问题的办法吗?我正在使用python flask创建网页 if request.method=='POST': dateval2 = request.form['datepick'] dateval = dateval2.encode('utf-8') res

我试图将从中的日期选择器中选择的日期返回到python代码中的sql查询中。我还尝试使用
encode(utf-8)
删除unicode字符串,但仍然出现了错误

我是python新手。谁能帮我找出解决这个问题的办法吗?我正在使用python flask创建网页

if request.method=='POST':
        dateval2 = request.form['datepick']
        dateval = dateval2.encode('utf-8')
    result = ("SELECT * FROM OE_TAT where convert(date,Time_IST)='?'",dateval
    df = pd.read_sql_query(result,connection)`
错误

pandas.io.sql.DatabaseError
DatabaseError: Execution failed on sql '("SELECT * FROM OE_TAT where convert(date,Time_IST)='?'", '2015-06-01')': The first argument to execute must be a string or unicode query.

您正在向提供元组,而第一个参数(查询)必须是字符串。这就是为什么它会给出错误“要执行的第一个参数必须是字符串或unicode查询”

可以按如下方式传递参数:

result = "SELECT * FROM OE_TAT where convert(date,Time_IST)=?"
df = pd.read_sql_query(result, connection, params=(dateval,))
请注意,
的使用取决于您使用的驱动程序(有不同的方法指定参数,请参阅)。您可能必须使用
%s
而不是


您也可以预先格式化字符串,如
result=“SELECT*FROM OE_-TAT where convert(date,Time_-IST)={0}”。格式化(dateval)
,但是,不建议这样做,请参见您提供元组的示例,而第一个参数(查询)必须是字符串。这就是为什么它会给出错误“要执行的第一个参数必须是字符串或unicode查询”

可以按如下方式传递参数:

result = "SELECT * FROM OE_TAT where convert(date,Time_IST)=?"
df = pd.read_sql_query(result, connection, params=(dateval,))
请注意,
的使用取决于您使用的驱动程序(有不同的方法指定参数,请参阅)。您可能必须使用
%s
而不是


您也可以预先格式化字符串,如
result=“SELECT*FROM OE_-TAT where convert(date,Time_-IST)={0}”。格式化(dateval)
,但是,不建议这样做,请参见eg

以何种格式来自日期选择器的日期?格式:“yy-mm-dd”与我的sql server数据库格式相同这正是我得到的错误:pandas.io.sql.DatabaseError DatabaseError:在sql上执行失败’(“选择*FROM OE_-TAT where convert(date,Time_-IST)=’?”,“2015-06-02”):要执行的第一个参数必须是字符串或unicode查询。您提供的是元组,而第一个参数(查询)必须是字符串,其中格式来自日期选择器的日期?格式:“yy-mm-dd”与我的sql server数据库格式相同这正是我得到的错误:pandas.io.sql.DatabaseError DatabaseError:sql上的执行失败”(“选择*from OE_-TAT where convert(日期、时间列表)='?','2015-06-02')“:要执行的第一个参数必须是字符串或unicode查询。您正在为提供元组,而第一个参数(查询)必须是字符串