2016-05-02 5 views
2

私は一種のPythonでSQLクエリを作成していたSQLクエリの実行中にエスケープシーケンスを取り除く方法:パイソン -

、それが実行されると
select lastupdatedatetime from auth_principal_entity where lastupdateddatetime < '02-05-16 03:46:51:527000000 PM' 

、doesnのが追加されているエスケープシーケンスがあります私は答えを返さない。

我々は標準出力にそれを印刷するとき、それは完璧に見えるが、Pythonの理解のために、それは私が私が私のSQL文をラップ、実行コマンドの中で私のために

'select lastupdatedatetime from auth_principal_entity where lastupdateddatetime < \\'02-05-16 03:50:14:388000000 PM\\'' 

答えて

1

エスケープシーケンスは、本当の問題があることされた日である cursor.execute(クエリ)のいずれかの問題が発生することはありません文字列として送信されているdbからdate-object形式の戻り値を返します。

だから、このような何かがうまくいくはずです。

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

を望んでいないエスケープシーケンスを持っているが、それはこれらの問題に遭遇しないようにトリプルクォートは私が実行したとき:

query = """ 
    select lastupdatedatetime from auth_principal_entity where lastupdateddatetime < '02-05-16 03:46:51:527000000 PM' 
    """ 
+0

私はすでに三重引用符を使用してみましたが、私のためには動作しません。 – Ayush

+0

使用しているdbドライバとPythonモジュールは何ですか? –

+0

私はcx_Oracleモジュールを使用しています con = cx_Oracle.connect( 'user/passwd @ dbname') – Ayush