-1

我想将一个不包含固定值的变量绑定到python中的SQL语句中:

例子:

import cx_Oracle
def(var1, var2):
....
  chkdate = datetime.datetime.now().strftime('%d-%m-%Y')
  #some lines of code
  def db_select_query(conn_data,query,column_names):
    conn_str = 'some user defined data'
    conn = cx_Oracle.conn(conn_str)
    cur = conn.cursor()
    cur.execute(query, chkdate)
  #some lines of code
  query = """Select * from Table_A where date > :chkdate"""

但这似乎不起作用。我怎样才能做到这一点?

4

1 回答 1

1

请参阅注释中提到的 cx_Oracle 绑定文档。

如果将日期绑定为字符串,则需要匹配 Oracle 安装使用的默认日期格式。相反,您可以直接绑定日期。尝试类似:

with connection.cursor() as cursor:
    chkdate = datetime.datetime.now()
    sql = """select last_name, hire_date from employees where hire_date + (365*13) > :d"""
    for r in cursor.execute(sql, [chkdate]):
        print(r)

数据算术只是因为示例 EMPLOYEES 表是几年前创建的,我只想匹配几行。

于 2020-07-19T00:47:55.403 回答