Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/09/2011, 00h20   #1
Membre actif
 
Homme
Étudiant
Inscription : février 2011
Messages : 237
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2011
Messages : 237
Points : 167
Points : 167
Par défaut requete select & date

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
oami89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2011, 08h46   #2
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 669
Points : 8 729
Points : 8 729
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 :

Code :
WHERE date='17/09/2011'
SQL Server fera le transtypage automatiquement, ce qui n'est pas toujours le mieux.
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 :

Code :
WHERE date = '20110917'
Et pour être propre :

Code :
WHERE date = CAST('20110917' AS datetime)
@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h18.


 
 
 
 
Partenaires

Hébergement Web