我有一个查询,需要提取给定日期的 claim 数据并返回该给定日期之前每年的数据,例如
我今天提出 claim :2019 年 1 月 15 日
我希望能够在一个通用查询中提取所有其他年份,因为这将是一个存储过程。
这将允许我查看过去几年中指定日期是否有 claim 。
如果我要创建变量或 case 语句,我可以分别执行 1 年、2 年、3 年,但有没有办法以更简单的方式完成这一切?
这是 1 年前的代码:
SELECT * FROM tblClaim c
WHERE c.IncidentDate = DATEadd(year, -1, CAST(FLOOR( CAST(GETDATE() AS FLOAT)) AS DATETIME)) AND c.StatusID = 2
最佳答案
嗯?仅使用日期部分应该会更容易:
SELECT c.*
FROM tblClaim c
WHERE c.StatusID = 2 AND
DAY(c.IncidentDate) = DAY(GETDATE()) AND
MONTH(c.IncidentDate) = MONTH(GETDATE());
两个注意事项:
- 注意 2 月 29 日。
- 这不会使用索引。
关于sql - 如何编写一个查询来提取每年给定日期的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54207042/