我在python中创建一个sql查询:
select lastupdatedatetime from auth_principal_entity where lastupdateddatetime < '02-05-16 03:46:51:527000000 PM'
执行时,会添加一些转义序列,但不会给我回答答案。
虽然当我们在stdout中打印它时,它看起来很完美,但是对于python的理解它具有我在执行命令中不想要的转义序列
'select lastupdatedatetime from auth_principal_entity where lastupdateddatetime < \\'02-05-16 03:50:14:388000000 PM\\''
答案 0 :(得分:1)
转义序列不会导致cursor.execute(查询)出现任何问题 真正的问题在于发送日期,因为字符串用于比较和返回db中的值,这些值是日期 - 对象格式。
所以这样的事情应该有效。
query = "SELECT LASTUPDATEDDATETIME FROM AUTH_PRINCIPAL_ENTITY WHERE LASTUPDATEDDATETIME < to_date('03-May-16', 'dd-mon-yy')"
或者
date_ = datetime.datetime.now().strftime('%d-%b-%y')
query = "SELECT LASTUPDATEDDATETIME FROM AUTH_PRINCIPAL_ENTITY WHERE LASTUPDATEDDATETIME < to_date('{}', 'dd-mon-yy')".format(date_)
试试吧。应该适合你: - )
答案 1 :(得分:-1)
对我来说,我将SQL语句包装在三引号中,以便在执行时不会遇到这些问题:
query = """
select lastupdatedatetime from auth_principal_entity where lastupdateddatetime < '02-05-16 03:46:51:527000000 PM'
"""