【发布时间】:2016-06-29 10:05:27
【问题描述】:
我正在使用 Python2、Oracle10g 和 cxOracle。
在我的 Python 代码中,我有一个特定的日期时间,如下所示:
last_check_timestamp = datetime.today() - timedelta(hours = 1)
print last_check_timestamp
>>> last_check_timestamp = 2016-03-14 11:13:06.743626
print type(last_check_timestamp)
>>> type(last_check_timestamp) = <type 'datetime.datetime'>
我想运行一个查询来检索在所述日期时间之后插入的所有行。这就是我正在尝试的方式:
query_string = ("SELECT * FROM {0} "
"WHERE SCN_TO_TIMESTAMP(ORA_ROWSCN) >= '{1}'".\
format(db_name, self.last_check_timestamp.timetuple()))
logger.info("query_string = \n%s\n" % query_string)
所以 Oracle 接收到的查询字符串是这样的:
SELECT * FROM SYS.DUAL
WHERE SCN_TO_TIMESTAMP(ORA_ROWSCN) >= 'time.struct_time(tm_year=2016, tm_mon=3, tm_mday=14, tm_hour=11, tm_min=23, tm_sec=26, tm_wday=0, tm_yday=74, tm_isdst=-1)'
这是我得到的错误:
cx_Oracle.DatabaseError: ORA-01858: a non-numeric character was found where a numeric was expected
为了让 Oracle 接受查询,应该如何进行日期比较?
【问题讨论】:
标签: python oracle oracle10g cx-oracle