我正在尝试用Python做这样的事情,
SQLCommand = ("Delete From %s where [Date] >= %s and [Date] <= %s", (calendar_table_name, required_starting_date, required_ending_date))
cursor.execute(SQLCommand)
calendar_table_name
is a string
多变的
required_starting_date
is a datetime
多变的
required_ending_date
is a datetime
多变的
尝试这个给我一个错误:
要执行的第一个参数必须是字符串或 unicode 查询。
尝试过这个,它给了我同样的错误:
SQLCommand = ("Delete From " + calendar_table_name + " where [Date] >= %s and [Date] <= %s", ( required_starting_date, required_ending_date))
cursor.execute(SQLCommand)
Edit:
type(required_ending_date)
Out[103]: pandas._libs.tslibs.timestamps.Timestamp
type(required_starting_date)
Out[103]: pandas._libs.tslibs.timestamps.Timestamp
这对我来说适用于 SSMS,
delete from [table_test] where [Date] >= '2007-01-01' and [Date] <= '2021-01-01';
更新:- 这是我正在尝试使用的代码
Delete_SQLCommand = f"Delete FROM [{calendar_table_name}] WHERE [Date]>=? And [Date]<=?"
params = (required_starting_date, required_ending_date)
required_starting_date 和 required_ending_date 为“TimeStamp”格式
calendar_tbl_connection = pyodbc.connect(driver=driver, server=required_server, database=database_name,
trusted_connection='yes')
calendar_tbl_cursor = calendar_tbl_connection.cursor()
calendar_tbl_cursor.execute(Delete_SQLCommand,params)
calendar_tbl_connection.commit
calendar_tbl_connection.close()