You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite按日期范围查询数据库值失败,直接执行SQL正常应如何排查?

SQLite按日期范围查询不生效问题解决方案

以下是你代码的核心问题和对应修正方案:

  • 结束日期输入框默认值无效
    HTML <input type="date"> 仅支持YYYY-MM-DD格式的字符串作为value属性值,你设置的value="today"不符合规范,浏览器会判定为无效值。如果用户提交时未手动修改结束日期,request.form.get("end")拿到的要么是空值,要么是异常默认值,自然无法匹配查询结果。
    修正示例(前端JS自动赋值当前日期):
    <input autocomplete="off" id="end_date" autofocus class="form-control" name="end" placeholder="end" type="date">
    <script>document.getElementById('end_date').valueAsDate = new Date();</script>
    
  • 先排查参数实际取值是否符合要求
    执行查询前先打印两个日期参数的实际值,确认是否都是YYYY-MM-DD格式的合法日期,同时确认session["user_id"]的取值和你手动测试时用的user_id=1是否一致:
    # 调试用代码,确认参数取值
    print("start:", request.form.get("start"))
    print("end:", request.form.get("end"))
    print("user_id:", session["user_id"])
    
  • 不要手动给参数化占位符加引号
    你使用的是参数化查询,:start、:end占位符会自动处理类型转义和引号包裹,手动加引号反而会让参数变成带额外引号的字符串,导致日期匹配失败。

内容的提问来源于stack exchange,提问作者Oris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:45:06