我需要将一组日期分类为“Cur”。年初至今','Lst。年初至今”或“其他”。YTD 基于 getdate()。我有一个用于测试的临时表,它有一个名为“calendar_date”的 DATETIME 类型的列。我想出了这个逻辑,它似乎有效。我只是想知道从性能角度来看这种方法是否有意义,或者其他方法是否更好。
select calendar_date,
case when (MONTH(calendar_date) < MONTH(getdate()))
or (MONTH(calendar_date) = MONTH (getdate())
AND DAY(calendar_date) <= DAY(getdate())) then
case when YEAR(calendar_date) = YEAR(GETDATE()) then 'CYTD'
when YEAR(calendar_date) = YEAR(getdate()) - 1 then 'LYTD'
else 'Other'
end
else 'Other'
end as Tim_Tag_YTD
from #temp1