Python 作为参数传递给SQL Server存储过程的日期-从pyodbc脚本调用

Python 作为参数传递给SQL Server存储过程的日期-从pyodbc脚本调用,python,pyodbc,Python,Pyodbc,将日期作为参数传递给SQL server存储过程时,日期格式是否会发生变化 我有一个位于Windows Server 2012上的python脚本,它使用pyodbc调用存储过程 对于某些日期(如“2020-01-30”)而言,这是没有问题的,但对于其他日期(如“2020-01-31”)则不是。如果从SQL Server Management Studio调用存储过程时使用Python脚本中不起作用的日期之一(例如“2020-01-31”),则该存储过程可以正常工作。参数是什么数据类型?众所周知

将日期作为参数传递给SQL server存储过程时,日期格式是否会发生变化

我有一个位于Windows Server 2012上的python脚本,它使用pyodbc调用存储过程


对于某些日期(如“2020-01-30”)而言,这是没有问题的,但对于其他日期(如“2020-01-31”)则不是。如果从SQL Server Management Studio调用存储过程时使用Python脚本中不起作用的日期之一(例如“2020-01-31”),则该存储过程可以正常工作。

参数是什么数据类型?众所周知,
DATETIME
数据类型对它可以正确解释为有效日期的字符串文本相当挑剔

普遍的共识是,您应该使用其他数据类型(例如,如果您只需要日期-无时间部分,则应使用
DATE
),或者如果这不可行,则使用ISO-8601格式设置日期:

20200131
YYYYMMDD

没有任何破折号或任何东西。

日期类型为日期。不需要将时间部分传递给存储过程。YYYY-MM-DD中确实有虚线。我不认为是虚线造成了问题,否则,为什么2020-01-30会起作用?这些“麻烦”的日期会发生什么?您是否收到错误-如果是:什么错误?没有错误消息-SP不会触发其中的命令(创建记录和发送电子邮件)