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

SQLite如何实现查询过去一整年所有日期的功能

SQLite 生成过去一整年所有日期的等效写法

你可以用递归CTE(公共表表达式)实现该需求,无需依赖系统表,兼容性更好,具体SQL如下:

WITH RECURSIVE date_series AS (
    -- 锚点:取一年前的当日作为起始日期
    SELECT DATE('now', '-1 year') AS Date
    UNION ALL
    -- 递归每次加1天,直到日期等于当前日期
    SELECT DATE(Date, '+1 day')
    FROM date_series
    WHERE Date < DATE('now')
)
SELECT Date FROM date_series;

说明

  • 上述语句会自动适配平年/闰年,返回结果为1列,包含从一年前当日到当前日期的所有日期,总共366行,和你给出的SQL Server语句效果完全一致
  • SQLite默认递归深度上限为1000,完全满足366天的查询需求,无需额外调整参数。如果后续需要生成更长的日期序列,可以通过PRAGMA max_recursion_depth = 所需深度;调整递归上限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:54:04