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

SQLite下存储为DD.MM.YYYY hh:mm:ss的日期如何筛选超30天的数据

解答

无需修改现有数据库,可直接通过SQL语句实现筛选

你可以通过SQLite的字符串截取函数,把现有DD.MM.YYYY hh:mm:ss格式的日期字段转换为SQLite支持的标准日期格式,再做时间差计算即可。
核心逻辑是将原日期字符串的年、月、日部分拆分后重新拼接为YYYY-MM-DD hh:mm:ss格式,再通过julianday函数计算和当前时间的差值:

-- 请将your_table替换为实际表名
SELECT * FROM your_table 
WHERE julianday('now') - julianday(
    substr(date,7,4) || '-' || substr(date,4,2) || '-' || substr(date,1,2) || substr(date,11)
) > 30;

方案选型建议

  • 数据量较小、筛选操作频率低:直接使用上述SQL即可,不需要额外修改数据库结构,也不需要把全量数据拉到业务层处理,综合成本最低。
  • 数据量较大、该筛选为高频操作:建议后续将日期字段改为SQLite支持的标准格式,或新增存储标准日期的生成列并建立索引,避免每次查询都做字符串切割,可大幅提升查询性能。
  • 不优先考虑全量查询后在业务代码过滤:该方案需要拉取全表数据到业务侧,数据量大时IO开销、内存占用都会远高于在SQL层做字符串转换,仅当SQL运行环境受限时再考虑该方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:54:05