J'essaie d'utiliser cx_Oracle pour interroger une table dans Oracle DB (version 11.2) et obtenir des lignes avec des valeurs dans une colonne entre une plage datetime.python oracle où la clause contenant la date est supérieure à la comparaison
J'ai essayé les approches suivantes:
Essayé entre l'article comme décrit here, mais le curseur obtient 0 lignes
parameters = (startDateTime, endDateTime) query = "select * from employee where joining_date between :1 and :2" cur = con.cursor() cur.execute(query, parameters)
Essayé la fonction TO_DATE() et date '' qualifiés. Toujours aucun résultat pour Between or> = operator. Il convient de noter que l'opérateur < fonctionne. J'ai également obtenu la même requête et essayé dans un client sql, et la requête renvoie des résultats. Code:
#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)
Les pointeurs sur pourquoi entre et> = opérateurs ne parviennent pas pour moi? (Ma deuxième approche est conforme à la réponse à Oracle date comparison in where clause mais ne fonctionne toujours pas pour moi)
J'utilise python et utilisé cx_Oracle 3.4.3 5.3 et 5.2 avec le client Oracle 11g sur la machine windows 7
Aucune idée, vraiment, juste une pensée ... Je n'ai pas vu "yyy" comme un élément de format de date, et je ne suis pas sûr si cela peut gâcher les choses. Je suppose que vous vouliez dire «yyyy» (année à quatre chiffres) ou peut-être juste «yy». Corrigez cela et voyez si ça aide. – mathguy
Oui, yyy était une faute de frappe ici, mon code l'a corrigé – Sandip