Bonjour la requete ci dessous ne fonctionne pas je pense que l'égale en rouge est fausse.
svp donner moi une solution.
Code:SELECT total,date FROM [HICHEM].[dbo].[recette] where date=17/09/2011
Version imprimable
Bonjour la requete ci dessous ne fonctionne pas je pense que l'égale en rouge est fausse.
svp donner moi une solution.
Code:SELECT total,date FROM [HICHEM].[dbo].[recette] where date=17/09/2011
Bonjour,
Effectivement elle ne peut pas fonctionner parce qu'un prédicat dans une clause WHERE ne peut être testé que sur une valeur atomique.
Vous devez donc écrire :
SQL Server fera le transtypage automatiquement, ce qui n'est pas toujours le mieux.Code:where date='17/09/2011'
D'autre part si vous exécutez cette requête sur une instance SQL Server qui a été installée en Anglais, cela ne fonctionnera pas, puisqu'il n'y a pas 17 mois dans une année.
En respectant le format ISO de dates, qui est donné dans la documentation des fonctions CAST() et CONVERT(), vous n'aurez jamais de problème.
Votre requête devient donc :
Et pour être propre :Code:where date = '20110917'
@++ ;)Code:where date = CAST('20110917' AS datetime)