T-SQL :将 int 视为工作日

T-SQL : treat int as weekday

DECLARE @weekDayCounter int = 7;
SELECT @weekDayCounter + 1
--returns  8

问题是如何让 T-SQL 将 @weekDayCounter 视为工作日数字而不用写 case 或 if 语句?

我想知道是否有办法 CONVERT/CAST 将 int 转换为工作日数据类型,或者有一个数字序列在超过最大数字时重置为第一个数字(例如 12 月 31 日 + 1 天 = 1 月 1 日而不是 12 月 32 日或 23:59 + 1 小时 = 00:59 而非 24:59)

所以

SELECT @weekDayCounter + 1 --returns 1

如有任何答案,我们将不胜感激!

如果您只想让数字在每次超过 7 时返回到 1,一种选择是:

SELECT  @weekDayCounter - (7 * FLOOR(@weekDayCounter/7))+1

它只是减去 7 *(7 进入@weekDayCounter 的次数)

如果您只想增加 17 范围内的值,您可以使用 modulus operator:

set @WeekDayCounter = @WeekDayCounter % 7 + 1;