python-3.x - python oracle where子句包含大于比较的日期

标签 python-3.x datetime oracle11g between cx-oracle

我正在尝试使用 cx_Oracle 查询 Oracle DB(版本 11.2)中的表并获取日期时间范围内列中的值的行。

我尝试过以下方法:

  1. 按照描述在子句之间尝试 here ,但光标获得 0 行

    parameters = (startDateTime, endDateTime)
    query = "select * from employee where joining_date between :1 and :2"
    cur = con.cursor()
    cur.execute(query, parameters)
    
  2. 尝试了 TO_DATE() 函数和 Date'' 限定符。 Between 或 >= 运算符仍然没有结果。值得注意的是 < 运算符有效。我也得到了相同的查询并在 sql 客户端中尝试,查询返回结果。代码:

    #returns no rows:
    query = "select * from employee where joining_date >= TO_DATE('" + startDateTime.strftime("%Y-%m-%d") + "','yyyy-mm-dd')"
    cur = con.cursor()
    cur.execute(query)
    #tried following just to ensure that some query runs fine, it returns results:
    query = query.replace(">=", "<")
    cur.execute(query)
    

关于为什么 Between 和 >= 运算符对我来说失败的任何指示? (我的第二种方法与Oracle date comparison in where clause中的答案一致,但仍然对我不起作用)

我正在使用 python 3.4.3,并在 Windows 7 计算机上使用 cx_Oracle 5.3 和 5.2 以及 Oracle 客户端 11g

最佳答案

假设您的员工表包含字段 emp_id,并且您的查询应检索包含 emp_id=1234567 的行。

制作两个执行以下查询的程序副本

query = "select to_char(:1,'YYYY-MM-DD HH24:MI:SS')||' >= '||to_char(joining_date,'YYYY-MM-DD HH24:MI:SS')||' >= '||to_char(:2,'YYYY-MM-DD HH24:MI:SS') resultstring from employee where emp_id=1234567"

query="select to_char(joining_date,'YYYY-MM-DD HH24:MI:SS')||' >= '||to_char(TO_DATE('" + startDateTime.strftime("%Y-%m-%d") + "','yyyy-mm-dd'),'YYYY-MM-DD HH24:MI:SS') resultstring from employee where emp_id=1234567"

向我们显示代码和列的值resultstring

关于python-3.x - python oracle where子句包含大于比较的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44813844/

相关文章:

python - 为什么此代码不生成具有随机颜色的形状?

swift - 如何表示一个忽略时间的 Date 对象?

javascript - 如何获取日期对象

sql - 如何在带有 IS NULL 的 WHERE 子句中使用 CASE 语句?

oracle - 如何从 Oracle 11g 中的对象类型列中进行 SELECT?

python 3 : Standard way to surpress the b' prefix when printing

python - 不支持在python中使用pem文件加密json给出RSA key 格式

oracle - ORACLE 11g默认不区分大小写

python-3.x - 为 tf.nn.embedding_lookup 预处理不同文本大小时 Pre-Padding 和 Post-Padding 文本的差异

python - 如何遍历数据框字典中的行并更改一些值 - Pandas Python