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

编写SQL实现周五至周一同组的TheResult日期计数逻辑

实现逻辑

将日期按「周二到下周一」划分为7天的独立计数周期,每个周期计数共增长4:

  • 周期内周二、周三、周四各对应1个独立计数增量
  • 周五、周六、周日、周一归为同一计数桶,共享1个计数值
    计数从当前日期(GETDATE() 转为纯日期类型)开始,初始值为0。
SQL Server 实现代码

代码做了周计算兼容,不受数据库默认周起始(DATEFIRST)配置影响:

-- 测试示例时可将@StartDate赋值为'2022-06-07',生产环境使用CAST(GETDATE() AS DATE)即可
DECLARE @StartDate DATE = CAST(GETDATE() AS DATE);

SELECT
    TheDate,
    DATENAME(WEEKDAY, TheDate) AS TheDayName,
    (DATEDIFF(DAY, @StartDate, TheDate) / 7) * 4 
    + CASE
        WHEN week_day = 2 THEN 0
        WHEN week_day = 3 THEN 1
        WHEN week_day = 4 THEN 2
        ELSE 3
      END AS TheResult
FROM (
    SELECT
        TheDate,
        -- 标准化周几计算:返回值1=周一、2=周二……7=周日,不受默认周起始配置影响
        (DATEPART(WEEKDAY, TheDate) + @@DATEFIRST - 2) % 7 + 1 AS week_day
    FROM Your_Table_Name -- 替换为实际存储日期的表名
) t
-- 测试示例可放开下方过滤条件
-- WHERE TheDate BETWEEN '2022-06-07' AND '2022-06-21'
验证结果

以示例给出的起始日2022-06-07测试,返回值完全匹配示例规则:

  • 首个周期(2022-06-07至2022-06-13):周二为0、周三为1、周四为2,周五至周一均为3
  • 第二个周期(2022-06-14至2022-06-20):周二为4、周三为5、周四为6,周五至周一均为7
  • 第三个周期起始日(2022-06-21,周二):返回值8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 22:04:04