首页 > 解决方案 > Sqlite 获取日期范围的数据库值

问题描述

还没有找到答案。

我有一个名为 history 的数据库,我将事务时间存储为:time with datetime 类型。

我有一个 HTML 表单,可以从用户那里获取开始和结束日期。

我的代码是:

hist = db.execute("SELECT * FROM history WHERE DATE(time) BETWEEN :start AND :end AND user_id = :i_d ORDER BY time DESC", start=request.form.get("start"), end=request.form.get("end"), i_d=session["user_id"])

我在 html 表单方面有以下内容:

<form action="/history" method="post">
  <h3>Please enter the time range to pull data from</h3>
        <div class="form-group">
            <input autocomplete="off" value="2021-10-14" autofocus class="form-control" name="start" placeholder="start" type="date">
            <input autocomplete="off" value="today" autofocus class="form-control" name="end" placeholder="end" type="date">
            <button onClick="this.form.submit(); this.disabled=true; this.value='Sending…'; " class="btn btn-primary" type="submit">Submit</button>
        </div>
</form>

它不工作。我尝试添加 ' ' 开始和结束,但它没有帮助。

在我的数据库上运行 sqlite3 并执行时

SELECT * FROM history WHERE DATE(time) BETWEEN '2021-10-14' AND '2021-10-31' AND user_id = 1 ORDER BY time DESC;

它确实有效。我的初始代码有什么问题?

谢谢!

标签: databasesqlite

解决方案


推荐阅读