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

SQLite如何基于Days表查询当前日期往前7天、往后14天的日期

问题需求

我们需要获取距当前日期往前7天、往后14天的所有对应日期,涉及的表结构如下:

Days表结构

IDDay
2Sunday
3Tuesday
9Wednesday
10Friday
8Thursday
4Saturday

原有实现为查询未来7天对应日期,使用的SQL如下:

SELECT CASE
           WHEN D.Day='Sunday' THEN date('now', 'localtime', 'weekday 0')
           WHEN D.Day='Monday' THEN date('now', 'localtime', 'weekday 1')
           WHEN D.Day='Tuesday' THEN date('now', 'localtime', 'weekday 2')
           WHEN D.Day='Wednesday' THEN date('now', 'localtime', 'weekday 3')
           WHEN D.Day='Thursday' THEN date('now', 'localtime', 'weekday 4')
           WHEN D.Day='Friday' THEN date('now', 'localtime', 'weekday 5')
           WHEN D.Day='Saturday' THEN date('now', 'localtime', 'weekday 6')
       END AS WeekDate
FROM Days AS D
解决方案

可以通过生成周偏移量的方式扩展原SQL,覆盖目标时间范围,同时增加边界校验避免生成超出要求的日期,修改后的SQL如下:

SELECT 
    CASE
        WHEN D.Day='Sunday' THEN date('now', 'localtime', 'weekday 0', offset||' days')
        WHEN D.Day='Monday' THEN date('now', 'localtime', 'weekday 1', offset||' days')
        WHEN D.Day='Tuesday' THEN date('now', 'localtime', 'weekday 2', offset||' days')
        WHEN D.Day='Wednesday' THEN date('now', 'localtime', 'weekday 3', offset||' days')
        WHEN D.Day='Thursday' THEN date('now', 'localtime', 'weekday 4', offset||' days')
        WHEN D.Day='Friday' THEN date('now', 'localtime', 'weekday 5', offset||' days')
        WHEN D.Day='Saturday' THEN date('now', 'localtime', 'weekday 6', offset||' days')
    END AS WeekDate
FROM Days AS D
-- 生成周偏移量:-7(上周)、0(本周)、+7(下周)、+14(下下周)
CROSS JOIN (VALUES (-7), (0), (7), (14)) AS offsets(offset)
-- 过滤仅保留在要求范围内的日期
WHERE WeekDate BETWEEN date('now', 'localtime', '-7 days') AND date('now', 'localtime', '+14 days')
ORDER BY WeekDate;

逻辑说明

  • 通过CROSS JOIN关联偏移量列表,一次性生成四个周期对应星期的日期,覆盖往前7天到往后14天的所有可能值
  • WHERE条件做二次校验,过滤掉落在边界外的日期,保证结果完全符合需求
  • 逻辑和原有实现保持兼容,会自动忽略Days表中不存在的星期(本示例中为Monday)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 21:06:03