Sleection de la date dans un smalldatetime

Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
-
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
-
bonjour,
je suis novice en sql et je fais toutes mes requetes un peu a l'arrache
deja quand j'ai un smalldatetime et que je n'affiche que la date, j'aimerais pouvoir comparer directement le champ date de mon smalldatetime avec une date affichée
est ce possible
un truc du genre
where date(masmalldatetime)=@date

si vous avez aussi de sliens ou c facile de comprendre les differentes requetes (avec de bons exemples)
sur la securité, la mise en reseau, les procedures stockees etc...
merci de m'en faire part

en fait je cherche un truc qui me donnerait les bases (mais solides) pour gerer correctmeent une bd sql

pendant que j'y suis je voudrais savoir quel est le mieux a utiliser dans le cas d'un petit reseau (4-5 postes maxi) : mysql,sqlexpress2005 ou autre?

merci bcp

6 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Pour les champs date, il faut utiliser le caractère # dans les requêtes, par exemple :

"Select TaDate FROM TaTable WHERE TaDate = #" & LaDateAComparer & "#"

Pour sélectionner un intervale, il faut utiliser BETWEEN.

Dans tout les cas, si tu as un problème sur la syntaxe à utiliser, google est ton ami : il te permettra de trouver rapidement la syntaxe adéquate.
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
2
merci pour la reponse mai sje ne suis pas sur d'avoir bien compris...


cela fonctionne bien sous sql express 2005?
faut_il mettre les &?
cela ne prend -t-il que le champ date d'un datetime?

je vais préciser ce que je veux

deja j'utilise une interface c# pour mes requetes
donc en general je mets :
select * from table where [mailto:date1=@date date1=@date];

puis je "charge" ds le param @date la valeur que je veux

si j'ai date1= "1/1/06:5:0:0" (je croi sque c a peu pres ca le 1er janvier 2006 a 5 h)

et @date="1/1/06"

je ne vais pas avoir de reponse alors que j'aimerais avoir la date date1 precedente.

en fait moi je veux tester que la partie date de date1
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
2
la j'ai essaye directement avec sqlcmd
select * from table1 where date1=#"1/1/06"#

et c incorrect syntaxe

quand je fais select * from table1 where date1="1/1/06" ca marche ùmais comme prevu je n'ai pas de reponse
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Non, les & et les " c'est pour la requête en langage vb, en C#, je ne connais pas les instructions de concaténation.

En fait, en structure SQL "classique", ca donne :

SELECT TaDate FROM TaTable WHERE TaDate = #LaDateAComparer#;

Maintenant, si avec ca ca te retourne toujours rien essaye ceci :
SELECT TaDate FROM TaTable WHERE Date(TaDate) = #LaDateAComparer#;

Ou encore :SELECT TaDate FROM TaTable WHERE Year(TaDate) Year(LaDateAComparer) AND Month(TaDate) Month(LaDateAComparer) AND Day(TaDate) = Day(LaDateAComparer);

Si avec tout cà, ca marche toujours pas, là je vois plus !
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
2
est tu sur que c bien de sqlexpress 2005 que tu parles la?


parce que # il connait pas incorrect syntaxe et Date non plus
'Date' is not a recognized built-in function name.

et la derniere me semble correcte mais c bien long a faire...
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
Salut

Les # sqlserver ne connais pas. C'est pour access

Regardes sur internet tu trouveras des articles.
ex: http://www.databasejournal.com/features/mssql/article.php/2209321

Voila