pyDAL - 查询比特定日期更新的记录

pyDAL - query records newer than a certain date

我在 SQLite 上的纯 SQL 中有以下查询,但不知道如何将其转换为 pyDAL:

SELECT * FROM buy WHERE date('now','-2 days') < timestamp;

购买 table 架构是:

CREATE TABLE "buy"(
    "id" INTEGER PRIMARY KEY AUTOINCREMENT,
    "order_id" CHAR(512),
    "market" CHAR(512),
    "purchase_price" DOUBLE,
    "selling_price" DOUBLE,
    "amount" DOUBLE
, "timestamp" TIMESTAMP, "config_file" CHAR(512));

您可以在 Python:

中创建比较日期,而不是使用 SQLite date 函数
import datetime
cutoff_time = datetime.datetime.now() - datetime.timedelta(2)
rows = db(db.buy.timestamp > cutoff_time).select()

或者,您也可以传递原始 SQL 字符串作为查询:

rows = db('buy.timestamp > date("now", "-2 days")').select(db.buy.ALL)

注意,在这种情况下,因为db()中的查询只是一个字符串,DAL将不知道选择的是哪个table,所以需要显式指定其中的字段.select()(或者,您可以添加一个选择所有记录的虚拟查询,例如 (db.buy.id != None))。