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.