SQLyogで実行されている次のクエリがあります
SELECT * FROM mytable WHERE created > UNIX_TIMESTAMP(STR_TO_DATE('2012-09-09 00:00:00-05:00','%Y-%m-%d %k:%i:%s') - INTERVAL 1 DAY);
Python または Django で同じクエリを実行すると、次のメッセージが表示されます。
Warning: Truncated incorrect datetime value: '2012-09-09 00:00:00-05:00'
上記と同じであることを確認するために、Python からクエリを出力しました。同一です (最後のセミコロンを含む)。タイムゾーンのオフセットに問題があると思われますが、なぜ SQLyog で機能するのかわかりません。
印刷されるクエリは次のとおりです。
--------------------------------------------------
SELECT * FROM sb_bans WHERE created > UNIX_TIMESTAMP(STR_TO_DATE('2012-09-09 00:00:00-05:00','%Y-%m-%d %H:%i:%s') - INTERVAL 1 DAY);
--------------------------------------------------
このクエリの実行に使用される Django コードは次のとおりです。
query = """SELECT * FROM sb_bans WHERE created > UNIX_TIMESTAMP(STR_TO_DATE('2012-09-09 00:00:00-05:00','%Y-%m-%d %H:%i:%s') - INTERVAL 1 DAY);"""
myCursor = connections[system_db].cursor()
results = myCursor.execute(query) # Dies on this statement
resultcount = results.fetchall()
このクエリを直接実行すると機能するのに、コードで実行すると失敗するのはなぜですか?