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

Flutter中SQFlite日期区间查询无数据返回问题求助

问题解决:日期区间查询无结果的原因及修复

你的问题出在SQL查询中的日期值没有加单引号。因为created字段存储的是字符串类型的日期(YYYY-MM-DD格式),但你写的2022-07-17会被SQL解析成数值运算(2022减7减17,结果是1998),相当于拿字符串和数值1998做比较,自然匹配不到任何记录。

修复方法很简单,给日期字符串加上单引号即可:

方式1:使用BETWEEN子句

final List<Map<String, dynamic>> records = await db.rawQuery(
  'SELECT * FROM vehicles WHERE created BETWEEN \'2022-07-17\' AND \'2022-08-16\''
);

方式2:使用>=和<=

final List<Map<String, dynamic>> records = await db.rawQuery(
  'SELECT * FROM vehicles WHERE created >= \'2022-07-17\' AND created <= \'2022-08-16\''
);

补充说明:由于你存储的日期是YYYY-MM-DD格式,这种格式的字符串可以直接按字典序进行大小比较,加引号后SQL能正确识别为字符串并完成区间匹配,不需要额外转换日期格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:48:45