需要检查今天的日期是否< 20,然后将结果变量设置为下个月的第一天。如果今天的日期> 20,那么将结果var设为下个月之后的下一个月的第一天?
示例:
24-09-2015集结果转换为1st Nov 201519-09-2015集结果转换为1st Oct 2015发布于 2015-09-24 15:42:38
这似乎有点棘手,因为日期算法:
set @var = (case when day(getdate()) < 20
then cast(dateadd(month, 1, dateadd(day, 1 - day(getdate()), getdate())) as date)
else cast(dateadd(month, 2, dateadd(day, 1 - day(getdate()), getdate())) as date)
end);这里是显示计算的SQL。
发布于 2015-09-24 15:46:40
这将给你的结果:
DECLARE @d DATE = '20150924'
SELECT CASE WHEN DAY(@d) < 20
THEN DATEADD(mm, 1, DATEADD(dd, -DAY(@d) + 1, @d))
ELSE DATEADD(mm, 2, DATEADD(dd, -DAY(@d) + 1, @d)) END;https://stackoverflow.com/questions/32765516
复制相似问题