我需要在第1天和第14天之间返回1
,并根据当天返回first day of next month
其他任何内容。
我可以在声明时运行非常基本的案例:
select
case when datepart(d, getdate()) between 2 and 14 then '1'
else '1st next month' end
按预期返回下个月的1或1,我也可以轻松获得下个月的实际第一天:
select DATEADD(d, 1, EOMONTH(getdate()))
但是当我把它结合起来。它没有返回任何东西 - 没有错误,也没有结果 无论今天是哪一天
select
case when datepart(d, getdate()) between 2 and 14 then '1'
else DATEADD(d, 1, EOMONTH(getdate())) end
你知道为什么吗?
答案 0 :(得分:2)
为避免数据类型不匹配,请将其输出为text:
select
case
when datepart(d, getdate()) between 2 and 14 then '1'
else convert(varchar, DATEADD(d, 1, EOMONTH(getdate())),120)
end