我是Python的新手,想要了解连接MS sql数据库的语法。 已成功创建连接但想要选择条件数据。 请建议以下如何在python中完成:
import pyodbc as odbc
cursor.execute("SELECT Col1,Col2 FROM Data where date between sysdate and (sysdate-1) ;")
我已将开始和结束分配为:
End = dt.datetime.today()
Start = End - dt.timedelta(days=1)
如何将其纳入上述查询? 此外,如果你能指出一些文件,其中可能会提到其他相关的事情,那将是非常有帮助的。
答案 0 :(得分:2)
如pyodbc documentation for .execute中所述,您可以在SQL命令文本中使用?
作为参数占位符,并将参数值传递给.execute
,如下所示:
End = dt.datetime.today()
Start = End - dt.timedelta(days=1)
sql = "SELECT [Col1],[Col2] FROM [Data] WHERE [date] BETWEEN ? AND ?"
cursor.execute(sql, Start, End)
rows = cursor.fetchall()
答案 1 :(得分:0)
我相信Gord的答案是正确的,但如果这很有用,您还可以在Python代码中动态准备SQL语句,并提供已经用光标参数更新的SQL语句。
这可以解决您的错误:
错误:('HYC00','[HYC00] [Microsoft] [ODBC SQL Server驱动程序]可选 功能未实现(0)(SQLBindParameter)')
def insertIfNotExists(...): DBIO[Seq[StateTable]] = {
val interaction: Seq[DBIO[Seq[StateTable]]] = ...
val startingPoint: Seq[StateTable] = Seq.empty
DBIO.fold(interaction, startingPoint) {
(total, list) => total ++ list
}
}