好的,所以我正在做一个软件工具来提醒即将到期的 CRB。到期间隔由程序的用户确定。
我目前正在使用 SQL Server 2008。因此,我正在尝试执行一条 SQL 语句,该语句将检索此到期期限之外的所有记录。以下是我想要实现的概念:
Declare @ExpiryType as int -- (0=Days,1=Weeks,2=Months,3=Years)
Declare @ExpiryValue as int -- Interval of expiry
Declare @DateOfIssue as date -- Date of last CRB check
SELECT * FROM tblDBS_Details
WHERE DATEADD(@ExpiryType, @ExpiryValue, @DateOfIssue) <= GETDATE()
如您所见,该表包含到期间隔类型(天、周、月、年)、间隔值以及我需要添加间隔的日期。
我在 DATEADD 函数的第一个参数中遇到错误,因为它需要 DATEPART 而不是整数。有没有办法根据存储的整数确定使用哪个 DATEPART?还是有其他方法可以做到这一点?