Problème pour rechercher une date entre 2

[Résolu]
Signaler
Messages postés
31
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
5 mai 2012
-
Messages postés
31
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
5 mai 2012
-
bonjour,

J'ai 2 dateTimePicker et j'aimerai faire une requête pour vérifier si une date est entre ces 2 dates.
ça fonctionne si j'exclu les 2 dates c'est à dire comme ça:

com.CommandText = "select * from RDV where RDV_DTE > @RDV_DTE_DEB and RDV_DTE < @RDV_DTE_FIN order by RDV_DTE";
            SqlParameter paramDeb = new SqlParameter("@RDV_DTE_DEB", SqlDbType.DateTime);
            SqlParameter paramFin = new SqlParameter("@RDV_DTE_FIN", SqlDbType.DateTime);
            com.Parameters.Add(paramDeb);
            com.Parameters.Add(paramFin);
            com.Parameters["@RDV_DTE_DEB"].Value = dateDeb.ToShortDateString();
            com.Parameters["@RDV_DTE_FIN"].Value = dateFin.ToShortDateString();

J'aimerai inclure les 2 dates c'est dire :
select * from RDV where RDV_DTE >@RDV_DTE_DEB and RDV_DTE< @RDV_DTE_FIN

et ceci ne fonctionne pas.
si quelqu'un pouvait m'aider

merci

4 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
Donc si RDV_DTE à sa composante heure à zéro, la requête devrait fonctionner.
Voir aussi l'opérateur BETWEEN.

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
Salut,

            com.Parameters["@RDV_DTE_DEB"].Value = dateDeb.ToShortDateString();
            com.Parameters["@RDV_DTE_FIN"].Value = dateFin.ToShortDateString();
Non.... =>
            com.Parameters["@RDV_DTE_DEB"].Value = dateDeb.Date;
            com.Parameters["@RDV_DTE_FIN"].Value = dateFin.Date;
C'est quoi cette manie de vouloir systématiquement tout faire passer par des chaines de caractères, de ce que je sais le GC n'est pas susceptible, il ne nous en voudra pas si on ne lui pas trop de boulot.

Concernant la comparaison, elle ne renverra bien évidemment de résultat pour la date spécifiée par @RDV_DTE_FIN que si RDV_DTE est pile poil à <date> 00:00:00, vu que tu met la composante heure à zéro dans le passage de paramètre.
Je suppose que tu voulais plutôt mettre la dernière heure valide de la journée pour @RDV_DTE_FIN (23:59:59).

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
31
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
5 mai 2012

Je préfèrerai justement ne pas m'occuper des heures c'est pour celà que j'avais mis toShortDateString()
Les dates concernent des dates de naissance donc l'heure est pas vraiment utile.

Si tu avais une solution pour qu ema requête fonctionne ça serait sympa

merci
Messages postés
31
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
5 mai 2012

Merci

Je me suis servi de BETWEEN et ça fonctionne très bien