Как выбрать последние 5 минут данных из базы данных MS Access с помощью pyodbc? - PullRequest
1 голос
/ 28 июня 2011

У меня есть следующий запрос (python pyodbc на Windows 7 для доступа к базе данных db .mdb):

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, но это не имеет значения.

Ответы [ 2 ]

2 голосов
/ 28 июня 2011

Две проблемы: 1) Поставьте двойные кавычки вокруг параметра n.2) Поставьте квадратные скобки вокруг time_stamp.(Access интерпретирует ваше подчеркивание в поле time_stamp как специальный символ при определенных обстоятельствах. Анализатор запросов делает все возможное для интерпретации специальных символов, но иногда он ошибается. Квадратные скобки помогают анализатору устранить неоднозначность имени поля, поэтомуправильный разбор)Запросы самостоятельно в Access и попробуйте их там сначала, чтобы убедиться, что они работают, прежде чем писать их в коде.Удачи!

0 голосов
/ 28 июня 2011

В соответствии с примерами на странице DATADD MSDN (http://msdn.microsoft.com/en-us/library/ms186819.aspx), попробуйте использовать

DATEADD(minute, -5, NOW())
...