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

如何设置DimDate表周起始日为周一并修正周起始日期计算

修正周起始日为周一的DimDate查询语句

问题描述

现有存储日期数据的DimDate表,需将周起始日设为周一(周范围为周一至周日)。当前查询语句在处理周日(如2024-03-31)时,错误将其周起始日判定为下周一(2024-04-01),不符合需求。

修正后的查询语句

SET DATEFIRST 1;

SELECT
    DATE,
    DATEADD(DAY, 1 - DATEPART(WEEKDAY, DATE), DATE) AS WEEK_START,
    DATENAME(DW, DATE) AS DAY_OF_WEEK
FROM
    DIMDATE

修正说明

原语句中DATEADD(WEEK,DATEDIFF(WEEK,0,DATE),0)的周数计算逻辑未完全适配SET DATEFIRST 1的设置,导致周日被划入下一周。修正后的写法通过DATEPART(WEEKDAY)获取当前日期的星期序号(SET DATEFIRST 1后,周一为1,周日为7),再通过日期偏移直接计算出对应周的周一,确保周日被归到上一周的周范围中,完全符合周一至周日的周定义。

验证结果

执行修正语句后,输出将符合预期:

DateWeekstartDay Of Week
2024-03-312024-03-25Sunday
2024-04-012024-04-01Monday

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 08:08:17