Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.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 PYODBC日期时间转换_Python_Sql Server_Datetime_Pypyodbc - Fatal编程技术网

Python PYODBC日期时间转换

Python PYODBC日期时间转换,python,sql-server,datetime,pypyodbc,Python,Sql Server,Datetime,Pypyodbc,我正在尝试调用MS SQL server上的第三方存储过程。 存储过程的开头有一个ALTER procedure块,包含以下行: @EffDate DateType = NULL, 我试图从Win7x64上的python2.7脚本调用它,稍微匿名: # coding: utf-8 import pypyodbc, datetime start_item = 'part' startdate = datetime.datetime(1950, 1, 1) query = "

我正在尝试调用MS SQL server上的第三方存储过程。 存储过程的开头有一个ALTER procedure块,包含以下行:

     @EffDate   DateType   = NULL, 
我试图从Win7x64上的python2.7脚本调用它,稍微匿名:

# coding: utf-8
import pypyodbc, datetime

start_item = 'part'
startdate = datetime.datetime(1950, 1, 1)
query = "{CALL APP_DB.dbo.CostRollBoMStoredProcedure(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}"
values = (start_item,'1','9999','0','0','M,T,F,O','P,M,T','2','C','1950-01-01','1','0','0','0','0','0')

conn  = pypyodbc.connect('DRIVER={SQL Server Native Client 10.0};SERVER=server;UID=user;PWD=pass;APP=Microsoft® Windows® Operating System;WSID=mypc;DATABASE=APP_DB')
cur = conn.cursor() 

cur.execute(query, (values))
这会引发以下错误:

pypyodbc.ProgrammingError: (u'42000', u'[42000] [Microsoft]
[SQL Server Native Client 10.0][SQL Server]Error converting data type varchar to datetime.')
我尝试了各种格式的日期参数作为字符串,或者使用第5行的startdate变量

我也换了司机


如何确定DateType参数所需的格式,并在python脚本中适当地发送它?

您确定是DateType而不是Date或DateTime吗不带破折号试试看。”19500101'我确定-它可能是自定义类型。附近的一些参数是nvarhar10(可能是内置的)和ProductCodeType(可能不是内置的)。在哪里可以找到自定义类型的定义?从sys.types中选择*,其中是\u user\u defined=1