我尝试使用以下SQL查询,基于第3列中的NoOfDays
,将日期范围作为第4列返回。
例如:
如果将70
作为NoOfDays
,则应将61-70
作为DateRange
返回
如果将51
作为NoOfDays
,则应将51-60
作为DateRange
返回
如果将100
作为NoOfDays
,则应将91-100
作为DateRange
返回
如果将174
作为NoOfDays
,则应将171-180
作为DateRange
返回
DECLARE @V_START INT = 1;
DECLARE @V_END INT = 10;
SELECT GETDATE() CurrentDate, TASK_ASSIGNED_DTM,
DATEDIFF(DAY, TASK_ASSIGNED_DTM, GETDATE()) NoOfDays, (CAST(@V_START AS VARCHAR(10))+'-'+CAST(@V_END AS VARCHAR(10))) AS DateRange
FROM Table
2条答案
按热度按时间pgpifvop1#
也许这对你有用?
您可以使用 modulo 来确定如何格式化您的范围,如下所示:
您可以将此应用于当前查询(当然是未经测试的),如下所示:
2w2cym1i2#
我倾向于使用一个通用的TIER表,它减少了接触点的数量(从代码中删除),并为业务逻辑和后续的演进提供了一个更加数据驱动的方法。
这里有一个大大简化的方法,表变量@Tiers应该是一个物理表。