我有一张要查询的表,用于提供进程列表。这些过程的命名约定根据我们所处的当前月份和年份而变化。因此,对于7月份,它的名称将为“ 07”,名称为“ 18”,依此类推。 这是一个测试查询
SELECT SUBSTRING(process_ID , 6, 2) as Procnumber,[process_ID]
FROM [Hana].[dbo].[processActivityEvent] v
WHERE process_ID like 'AB18-07_shield%'
我使用了一个子字符串来获取给我的月份:
结果
+------------+----------------------+
| Procnumber | Process_ID |
+------------+----------------------+
| 07 | AB18-07_shield123456 |
+------------+----------------------+
每当我们进入新的月份(即8月)时,我都希望迭代该数字(月份)。我想要一个while循环或任何一个将下一个数字加1或替换当前数字的函数,这样无论何时我们进入新的月份或年份,我都不必将其硬编码到查询中或修改查询。我想使这个过程自动化。 请帮忙。
答案 0 :(得分:1)
WHERE process_ID like 'AB18-'+RIGHT('0' + RTRIM(MONTH(GETDATE())), 2)+'_shield%'
一年中您也可以做类似的事情
答案 1 :(得分:1)
添加了Year计算后,将会是
哪里有process_ID,例如“ AB” + RIGHT(RTRIM(YEAR(GETDATE())),2) +'-'+ RIGHT('0'+ RTRIM(MONTH(GETDATE())),2)+'_ shield%'