DECLARE @inputDate DATE = '2025-01-06'; -- 输入日期
-- 设置一周的第一天为星期一
SET DATEFIRST 1;
-- 获取指定日期是周几
DECLARE @dayOfWeek INT = DATEPART(WEEKDAY, @inputDate);
DECLARE @firstDayOfWeek DATE = DATEADD(DAY, 1 - DATEPART(WEEKDAY, @inputDate), @inputDate);
-- 获取输入日期所在周的最后一天
DECLARE @lastDayOfWeek DATE = DATEADD(DAY, 6 - DATEPART(WEEKDAY, @inputDate), @inputDate);
-- 输出结果
SELECT @dayOfWeek, @firstDayOfWeek, @lastDayOfWeek, YEAR(@lastDayOfWeek), DATEPART(ISO_WEEK, @firstDayOfWeek);
--直接计算需要设置SET DATEFIRST 1;
SELECT CAST(YEAR(DATEADD(DAY, 6 - DATEPART(WEEKDAY, '2025-01-06'), '2025-01-06')) AS VARCHAR(4)) +
RIGHT('00' + CAST(DATEPART(ISO_WEEK, DATEADD(DAY, 1 - DATEPART(WEEKDAY, '2025-01-06'), '2025-01-06')) AS VARCHAR(2)),2)