Python/pyodbc-用于筛选日期的WHERE语句



我使用pydoc从sql数据库中获取数据。

我想使用WHERE语句来筛选日期。我有:

cursor.execute("SELECT isnull(SOP30200.SOPNUMBE,''), isnull(SOP30200.docdate,'') from SOP30200 where SOP30200.docdate > datetime.datetime(2015,1,1,0,0)")

我得到错误:

ProgrammingError: ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot find either column "datetime" or the user-defined function or aggregate "datetime.datetime", or the name is ambiguous. (4121) (SQLExecDirectW)') 

在没有WHERE语句的情况下,我成功地获取了数据。我确实检查了"docdate"字段的类型,它是datetime.datetime.

EDIT:还应指出,提取的日期的格式为datetime.datetime(2013, 5, 8, 0, 0)

您需要使用参数注入/插值日期。SQL server正尝试按原样运行SQL语句,并希望数据库中存在datetime.datetime(..)函数。

cursor.execute("SELECT isnull(SOP30200.SOPNUMBE,''), isnull(SOP30200.docdate,'') from SOP30200 where SOP30200.docdate > ?", datetime.datetime(2015,1,1,0,0))

请参阅http://mkleehammer.github.io/pyodbc/-参数部分

"datetime.datetime"不是SQL函数,是Python标准库的类。

可能是:

cursor.execute("SELECT isnull(SOP30200.SOPNUMBE,''), isnull(SOP30200.docdate,'') from SOP30200 where SOP30200.docdate > ?", datetime.datetime(2015,1,1,0,0))

相关内容

  • 没有找到相关文章

最新更新