1

次のクエリがあります(Windows 7でアクセスdb .mdbにアクセスするpython pyodbc):

SQL = 'SELECT acq_spill_3_1_sec.time_stamp, acq_spill_3_1_sec.float_value 
    FROM acq_spill_3_1_sec WHERE acq_spill_3_1_sec.time_stamp > DateADD(n,-5,Now())'

DateADD動作しないようです。次のエラーが表示されます。

pyodbc.Error: ('07002', '[070021] [Microsoft][ODBC Microsoft Access Driver] Too few
parameters. Expected 1.

n を一重引用符、二重引用符で囲み、引用符なしで試してみましたが、違いはありません。

4

2 に答える 2

2

2 つの問題: 1) パラメータを二重引用符で囲みnます。2) を角括弧で囲みますtime_stamp。(特定の状況下では、Access はtime_stampフィールド内のアンダースコアを特殊文字として解釈します。クエリ パーサーは特殊文字を解釈するために最善を尽くしますが、場合によっては正しく解釈されないことがあります。角かっこは、パーサーがフィールド名のあいまいさを解消し、正しく解析を行うのに役立ちます。 .)

私の意見ですが、DateDiff代わりに使用します。

SQL = 'SELECT time_stamp, float_value FROM acq_spill_3_1_sec WHERE DateDiff("n",[time_stamp],Now()) <= 5'

コードでクエリを記述する前に、Access 内で自分でクエリを作成し、最初にクエリが機能することを確認する方がはるかに簡単です。幸運を!

于 2011-06-28T14:29:36.987 に答える
-1

DATADD MSDN ページ (http://msdn.microsoft.com/en-us/library/ms186819.aspx) の例に従って、使用してみてください

DATEADD(minute, -5, NOW())
于 2011-06-28T11:32:12.823 に答える