首页 > 解决方案 > Python 帮助:难以将日期变量传递给 sql

问题描述

尽管这里有类似的问题,但到目前为止,我已经一遍又一遍地尝试了,但都没有成功。

我的 python 脚本将 sql.txt 中的所有 sql 行都放入变量“code”中:

start_time = input("insert[dd-mm-yyyy]:")
code = open(r'Query\sql.txt', 'r').read()
final = cursor.execute(code).fetchall()

在 sql.txt 中,sql 代码由 OPENQUERY 语句执行:

SELECT * FROM OPENQUERY(GATEWAY,'SELECT * FROM meas_table WHERE daytime >= to_date(''13-08-2020 00:00'', ''dd-mm-yyyy HH24:MI'') ')

如何更改 sql 行以正确地将从 python 脚本获得的变量 start_time 传递给 sql 代码?

标签: pythonsql

解决方案


我会格式化查询(字符串格式化)。

接受start_time变量以格式化您的查询。

SELECT * 
FROM OPENQUERY(GATEWAY,'SELECT * FROM meas_table WHERE daytime >= to_date('{date_here}', ''dd-mm-yyyy HH24:MI'') ')
code.format(date_here=start_time)

推荐阅读