首页 > 解决方案 > 无法以正确格式为 Python 中的 sql 查询声明日期变量

问题描述

使用 Python 执行 sql 查询并为选择提供日期变量。但是我收到错误“datetime2 与 int (206) 不兼容”我已经搞砸了该变量,但似乎无法将其转换为正确的格式。下面的代码:

import pyodbc
import pandas as pd
import datetime

dt = datetime.date(2021, 10, 1)
print (dt)

server = 'testServer'
database = 'testDatabase'
username = 'test'
password = '{test}'   
driver= '{ODBC Driver 13 for SQL Server}'

conn = pyodbc.connect('DRIVER='+driver+';SERVER=tcp:'+server+';PORT=1433;DATABASE='+database+';UID='+username+';PWD='+ password)

conn.autocommit = True

select_sql = """Select * From test Where Inception <= {x}""".format(x=dt)

sql_query = pd.read_sql_query(select_sql, conn)

标签: pythonsql-serverdate

解决方案


@shahkalpesh(谢谢)指出了正确的方向,使用此参数化解决了日期问题。"""Select * From test Where Inception <= ?""" sql_query = pd.read_sql_query(select_sql, conn, params=[dt])


推荐阅读