why is case when failing when modifying date
<p>I need to return <code>1</code> between 1st and 14th and <code>first day of next month</code> for any other based on current day.</p>

<p>I can run very basic case when statement: </p>

<pre><code>select 
case when datepart(d, getdate()) between 2 and 14 then '1'
      else '1st next month' end
</code></pre>

<p>which returns 1 or 1st next month as expected, and I can get actual first day of next month easily as well:</p>

<pre><code>select DATEADD(d, 1, EOMONTH(getdate())) 
</code></pre>

<p>but when I combine it. It doesn't return anything - no error and no results
no matter what day is today</p>

<pre><code>select 
case when datepart(d, getdate()) between 2 and 14 then '1'
      else DATEADD(d, 1, EOMONTH(getdate()))  end
</code></pre>

<p>do you have any idea why?</p>