【问题标题】:Error while passing Datetime as a parameter to a stored procedure with PyODBC使用 PyODBC 将日期时间作为参数传递给存储过程时出错
【发布时间】:2019-04-09 05:33:15
【问题描述】:

我需要从 Python 执行一个存储过程。我正在使用 pyodbc 来做到这一点。存储过程需要传递一个日期时间参数。

我正在使用以下代码:

cursor.execute('exec [Data].[GetData]?',datetime.datetime.now())

我收到以下错误:

ProgrammingError: ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]不允许从数据类型 datetime 到 bigint 的隐式转换。使用 CONVERT 函数运行此查询。(257 ) (SQLExecDirectW)')

我该怎么办?

【问题讨论】:

  • “SP 需要传递一个日期时间参数” - 错误消息提示其他情况。它似乎期待一个 bigint 值。检查存储过程的文档以验证参数值应该是什么。

标签: python sql-server python-3.x pyodbc


【解决方案1】:
from datetime import datetime

cursor.execute('exec [Data].[GetData]?',datetime.now())

检查您的导入时遇到同样的错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    相关资源
    最近更新 更多