我正在使用 SQL Server 2008,并在我的表上创建了一个计算列,即 ResidencyStatus。在 ResidencyStatus 中使用 datediff 我想知道当前日期(现在日期)和我的其他日期列 ResidencyDate 之间的差异。
现在,如果结果小于或等于 183 天(小于或等于 6 个月),那么我想将字符串“Transient”放入 ResidencyStatus。
如果结果大于或等于 184 天(大于或等于 6 个月零 1 天)且小于或等于 1825 天(小于或等于 4 年零 364 天),则该值将为 'Migrant '。
如果结果大于或等于 1826 天(大于或等于 5 年),则该值为“居民”。
我尝试在计算列中使用此公式:
(case when (datediff(day,[ResidencyDate],getdate()))<=183 then 'Transient' elseif (datediff(day,[ResidencyDate],getdate())>=184 and <=1825 then 'Migrant' elseif (datediff(day,[ResidencyDate],getdate())>=1826 then 'Resident' end
...但出现此错误“验证列 ResidencyStatus 的公式时出错。” 你能给我一个关于如何使这个公式起作用或替代解决方案的想法吗?