0

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()

このクエリを直接実行すると機能するのに、コードで実行すると失敗するのはなぜですか?

4

1 に答える 1

0

2 つのクエリには違いがあります。

初め:

STR_TO_DATE('2012-09-09 00:00:00-05:00','%Y-%m-%d %k:%i:%s')

ジャンゴコード:

STR_TO_DATE('2012-09-09 00:00:00-05:00','%Y-%m-%d %H:%i:%s')

一方には 、%kもう一方には があり%Hます。おそらくそれがあなたの問題の根源ですか?

于 2012-09-09T20:30:32.433 に答える