我有以下查询(Windows 7 上的 python pyodbc Access Access 数据库.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 周围使用单引号、双引号和不加引号,但这没有什么区别。
最佳答案
两个问题: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 中构建查询并先在 Access 中尝试以确保它们有效,然后再将其写入代码要容易得多。祝你好运!
关于python - 如何使用 pyodbc 从 ms access 数据库中选择最后 5 分钟的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6505326/