Operand type clash: date is incompatible with int solved with CONVERT() ... but WHY?
<p>My question is about WHY?  WHAT is SQL doing to cause this error message in the situation below.</p>

<p>There are a few of these queries on stack but usually because of a missing DateAdd().  Here I am simply trying to put the date passed in as part of an audit note string against the record.  I am not specifically asking the two variables to play together and give me a result.</p>

<p>Below is the line of issue.  At the bottom the fuller query for context.</p>

<p>@Days INT,
@Date DATE</p>

<p><strong>'Extension to claim of ' + @Days + ' from ' + @Date + '.' ,</strong></p>

<pre><code>SELECT TOP 1
                ID,
                WorkFlowStatusCode ,
                'Number of days: ' + @Days + ' from ' + @Date + '.' ,
                @UserId ,
                @UserId
        FROM    dbo.Table
        WHERE   ID= @VariableA
        ORDER BY ID DESC;
</code></pre>

<p>What I have found is that wrapping the @Date in a Convert() to 103 solves the issue.  See Below.</p>

<p><strong>'Extension to claim of ' + @Days + ' from ' + CONVERT(NVARCHAR(10),@Date,103) + '.' ,</strong></p>

<p>I am simply trying to understand why I would need to do that in this situation from SQL/Database point of view.  I can't find that answer online to help my understanding.</p>

<p>All comments greatly appreciated.</p>

<p>Lee</p>