Vous pouvez utiliser le DATEPART
fonction pour extraire des portions de dates. Cela devrait également rendre vos requêtes plus explicites sur ce que vous cherchez à réaliser :
SELECT * FROM MyTable
where DATEPART(year,CheckDate)=2009 and
DATEPART(month,CheckDate) between 10 and 12
(Il existe également des fonctions spécifiquement nommées, telles que MONTH et YEAR , mais je préfère DATEPART pour plus de cohérence puisqu'il peut accéder à tous les composants d'un datetime )
Vous devriez essayer d'éviter de penser à datetime s comme ayant n'importe quel type de format de chaîne. Les traiter comme des chaînes est l'une des principales sources d'erreurs que nous rencontrons.