Azure sql database Python 3.4.1插入SQL Azure(pyodbc)

Azure sql database Python 3.4.1插入SQL Azure(pyodbc),azure-sql-database,pyodbc,Azure Sql Database,Pyodbc,我正在尝试将一些数据插入到SQL Azure中创建的表中 SQL结构 Field 1 DATE Field 2 INT Field 3 INT 使用的Python代码: #I know I have connected to the correct database. Connection = pyodbc.connect(conn.conn()) cursor = Connection.cursor() SQLCommand = ('INSERT INTO table_name ([Fi

我正在尝试将一些数据插入到SQL Azure中创建的表中

SQL结构

Field 1 DATE
Field 2 INT
Field 3 INT
使用的Python代码:

#I know I have connected to the correct database.
Connection = pyodbc.connect(conn.conn()) 
cursor = Connection.cursor()

SQLCommand = ('INSERT INTO table_name ([Field 1], [Field 2], [Field 3]) VALUES ('31-Dec-14', 1, 2);')
cursor.execute(SQLCommand)
Connection.commit()
我得到以下错误

pyodbc.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid column name '31-DEC-2014'. (207)
TypeError: The first argument to execute must be a string or unicode query.
如果我用

SQLCommand = ('INSERT INTO table_name ([Field 1], [Field 2], [Field 3]) VALUES (?, ?, ?);', ('31-DEC-2014',1,2))
cursor.execute(SQLCommand)
Connection.commit() 
我得到以下错误

pyodbc.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid column name '31-DEC-2014'. (207)
TypeError: The first argument to execute must be a string or unicode query.
如何通过python将日期和整数输入SQLAzure表


谢谢

日期分析器不喜欢您的格式。请参阅Microsoft文档以获取有效的

以下语法应该可以工作:

SQLCommand = ("INSERT INTO table_name ([Field 1], [Field 2], [Field 3]) VALUES ('2014-12-31', 1, 2);")
cursor.execute(SQLCommand)
Connection.commit()
谢谢你的提问。 如果您试图使用Python连接到Azure SQL DB,我强烈建议您使用pymssql。 至于您的问题,这取决于创建SQL表时使用的日期时间格式

下面是如何使用pymssql针对AdventureWorks模式插入日期和整数(AdventureWorks模式是一个预加载的模式,您可以使用它创建数据库以进行测试)

如果您对如何在计算机上安装pymssql有疑问,这里有一些参考文档可以帮助您:)



-

如果您对在Azure SQL DB中使用pymssql有任何问题,请告诉我,因为我很乐意提供帮助。

最好的,
见见巴格德夫

微软项目经理评论1:我认为pymssql需要使用“FreeTDS”?(即SQL原生客户端11.0)无法在windows系统中工作?注释2:我仍然收到使用pymssql的无效列名错误。我认为这与通过python将日期格式放入sql有关。你好,Harris,它应该可以在Windows上工作。以下是您将如何做到这一点-。另外,您的日期格式在数据库中是什么样子的。上面链接中的代码应该适用于默认的日期格式。我已通过以下“SQLCommand=(“INSERT INTO table_name([Field 1],[Field 2],[Field 3])值(?,,?);”)cursor.execute(SQLCommand,(datetime.datetime.strtime('31-DEC-2014',%d-%m-%Y',1,2))连接解决了日期格式问题。commit()“…但这是通过pyodbc而不是pymssql完成的。pyodbc似乎不喜欢所有的输入数据都在SQLCommand行中。嗨,哈里斯,我很高兴你能解决这个问题。我在Microsoft工作,目前正在为Azure SQL DB和SQL Server开发python客户端驱动程序。你愿意在今年的某个时候与我聊天吗?”eek?希望了解您的痛点并获得一些反馈:)我的电子邮件是microsoft.com的mebha