python - 如何使用 pyodbc 从 ms access 数据库中选择最后 5 分钟的数据?

标签 python sql ms-access pyodbc

我有以下查询(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/

相关文章:

python - 使用 cv2 检测 2048 年的瓷砖方 block

mysql - 在嵌套SQL中如何对值进行求和

ms-access - 通过 VBA MS_Access 将 MS Access 表导出为 dBase 5

mysql - 使用 ActiveRecord 将数据从 MS Access DB 导入 MySQL DB

python - 理解 Python 中的 Axis

python - Windows下运行Galde Gtk3+ Python

python - Python 线程上的守护进程属性的含义

sql - 如何返回数据库中所有表的变量​​的不同计数?

java - 使用 JavaFX 将数据写入 MySQL 表

c# - 为什么 MS access odbc 在 C# 中返回数字而不返回字符串?