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

如何在SQLite中查询指定日期对应月份的最后一个工作日

SQLite查询指定日期对应月份最后一个工作日的实现方法

实现逻辑

默认工作日定义为周一到周五,排除周六周日,实现逻辑如下:

  1. 先计算指定日期所在月份的最后一天
  2. 判断最后一天的星期属性:
    • 若为周六,向前偏移1天
    • 若为周日,向前偏移2天
    • 其余时间直接返回当月最后一天

可用查询语句

SELECT 
    CASE strftime('%w', last_day_of_month)
        -- 周六往前推1天
        WHEN '6' THEN date(last_day_of_month, '-1 day')
        -- 周日往前推2天
        WHEN '0' THEN date(last_day_of_month, '-2 days')
        ELSE last_day_of_month
    END AS last_workday_of_month
FROM (
    -- 替换此处的输入日期为你需要查询的指定日期,推荐使用YYYY-MM-DD格式
    SELECT date('你的指定日期', 'start of month', '+1 month', '-1 day') AS last_day_of_month
) AS month_last_day;

使用示例

示例1:查询2021年11月的最后一个工作日

将子查询中的日期替换为'2021-11-17',执行后返回结果为2021-11-30,符合预期。

示例2:查询2022年4月的最后一个工作日

将子查询中的日期替换为'2022-04-30',执行后返回结果为2022-04-29,符合预期。

注意事项

  • 上述逻辑仅排除周末,不包含法定节假日判断。如果需要适配法定节假日,需要自行维护一张法定节假日数据表,在上述结果基础上额外做偏移过滤。
  • 输入日期请使用SQLite支持的标准格式,优先选择YYYY-MM-DD格式避免日期解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:45:03