我试图避免硬编码支付截止日期。会计年度为 10 月 1 日至 9 月 30 日。
如果有人在 7 月 1 日至 12 月 31 日之间加入,则付款截止日期为下一个日历年,例如,2013 年 11 月,某人已付款并在 2014 年 9 月 30 日之前获得付款。我需要通过 2013 年和 2014 年付款
如果有人在 1 月 1 日至 6 月 30 日之间加入,则支付截止日期为当前日历年,例如今年 1 月将是 2014 年,他们的支付截止日期为 2014 年 9 月 30 日,我不再需要 2013 年支付通过组。
这就是我所拥有的:如果 getdate 月份在 1 到 6 之间,那么我需要用 9/30/ + 当年的付费来拉人。如果 getdate 月份在 7 到 12 之间,那么我需要选择以当年 9/30 的付费通 + 下一年的 9/30 来拉人。
select id, paid_thru, getdate()as today
from name
where datepart(mm,getdate())between 1 and 6 and datepart (yyyy,paid_thru)+1 = datepart(yyyy,getdate())
or
datepart(mm,getdate()) between 7 and 12 and datepart (yyyy,paid_thru) = datepart(yyyy,getdate())
这个查询只给了我 2013 年 9 月 30 日,因为月份是 11 月 (11),我需要 09/30/2013 和 09/30/2014 支付截止日期。
谢谢