我正在使用 cx_oracle python 库来查找过去 90 分钟内具有 ModifiedDate 的任何记录。
import cx_Oracle
import datetime
from datetime import timedelta
import config as config
timeNow = datetime.datetime.now()
previousTime = timeNow - datetime.timedelta (minutes = 0)
connection = cx_Oracle.connect(user, password, connection)
cur = connection.cursor()
statement = "SELECT * FROM woodburn_all WHERE modifiedDate >= to_date(" + str(previousTime) +")"
print statement
r = cur.execute(statement)
for row in cur:
print row
打印的选择语句看起来是正确的:
从 woodburn_all 中选择 *,其中 to_date(modifiedDate) >= to_date(2018-09-2 11:02:10.460000)
我没有看到我在哪里遗漏了任何括号。这是一些奇怪的日期/时间吗?
编辑:使用Python v2.7
最佳答案
your problem in sql statement where clause
to_date(2018-09-2 11:02:10.460000)
因为如果你在oracle中写这个
select to_date(2018-09-2 11:02:10.460000) from dual this will trrow
- ORA-00907: 缺少右括号,当任何sql语句发生语法错误时oracle引擎抛出此错误
所以应该是这样的
select TO_DATE('09/02/2018 13:27:18', 'MM/DD/YYYY HH24:MI:SS') from dual
所以你的 where 子句将是
TO_DATE('09/02/2018 13:27:18', 'MM/DD/YYYY HH24:MI:SS')
关于python - cx_oracle 缺少右括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52430137/