<pre><code class="lang-auto">select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
</code></pre>
<p>Dans votre requête, <code>2010-4-01</code> est traité comme une expression mathématique, donc en substance cela se lit :</p>
<pre><code class="lang-auto">select *
from dbo.March2010 A
where A.Date >= 2005;
</code></pre>
<p>(<code>2010 moins 4 moins 1 égale 2005</code><br>
La conversion en un <code>datetime</code> correct, avec l’utilisation de guillemets simples, résoudra ce problème.)</p>
<p>Techniquement, l’analyseur pourrait vous permettre d’écrire</p>
<pre><code class="lang-auto">select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
</code></pre>
<p>il effectuera la conversion pour vous, mais à mon avis c’est moins lisible que de convertir explicitement en <code>DateTime</code> pour le programmeur de maintenance qui viendra après vous.</p>