Nitrakz
Messages postés60Date d'inscriptiondimanche 8 novembre 2009StatutMembreDernière intervention19 octobre 2010
-
12 août 2010 à 10:18
Nitrakz
Messages postés60Date d'inscriptiondimanche 8 novembre 2009StatutMembreDernière intervention19 octobre 2010
-
12 août 2010 à 10:54
Bonjour,
Mon problème est le suivant, je ne parviens pas a limiter mon select a un intervalle entre 2 dates ou 1 date saisi manuellement par un utilisateur et de la forme DD/MM/YYYY. Voici une forme simplifier de la requête.
Date début et fin entrer:
SELECT [Nom] FROM [Test] WHERE CONVERT(char(10),[Date action],103)>='10/08/2010' AND CONVERT(char(10),[Date action],103)<='11/08/2010'
Date début:
SELECT [Nom] FROM [Test] WHERE CONVERT(char(10),[Date action],103)>='10/08/2010'
Pour info, sur le CONVERT: 103 = jj/mm/aaaa
J'ai essayer avec BETWEEN mais sa ne fonctionne pas puisque l'utilisateur n'entre pas forcement 2 dates.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 12 août 2010 à 10:28
D'abord par principe, on ne converti pas le champs de la base pour pouvoir le comparer au paramètre. Au contraire, c'est le paramètre que l'on va convertir au type du champ de la base pour pouvoir faire la comparaison.
SELECT [Nom] FROM [Test] WHERE [Date action] >= CONVERT(DateTime,'10/08/2010',103) AND [Date action] <= CONVERT(DateTime,'11/08/2010',103)
[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 12 août 2010 à 10:29
Salut,
Pourquoi stocker des dates au format varchar ? C'est tellement plus simple de travailler avec le format DATETIME plutôt et en plus c'est plus optimisé.
Il me semble que le format des dates est : aaaa-mm-jj et non dd/mm/yyyy
Du coup, essaye ainsi :
SELECT [Nom] FROM [Test] WHERE CONVERT(char(10),[Date action],103)>='2010/08/10' AND CONVERT(char(10),[Date action],103)<='2010/08/11'
Et si ca ne marche pas :
SELECT [Nom] FROM [Test] WHERE CONVERT(char(10),[Date action],103)>=CONVERT('10/08/2010',[Date action],103) AND CONVERT(char(10),[Date action],103)<=CONVERT('11/08/2010',[Date action],103)
______________________________________
AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Nitrakz
Messages postés60Date d'inscriptiondimanche 8 novembre 2009StatutMembreDernière intervention19 octobre 2010 12 août 2010 à 10:37
Mes dates sont stocker était bien stocker au format Date. Avec la reponse de casy ca fonctionne sauf que ca me prend pas les valeur du 11/08 ? c'est du au fait qu'il prend l'heure à 00h00 ? Quel concaténation d'heure a se format pour avoir une vrai inclusion >= ?
There is no place like 127.0.0.1 /
Vous n’avez pas trouvé la réponse que vous recherchez ?
Nitrakz
Messages postés60Date d'inscriptiondimanche 8 novembre 2009StatutMembreDernière intervention19 octobre 2010 12 août 2010 à 10:54
Nan c'est bon je viens de trouver je fait un simple:
SELECT [Nom] FROM [Test] WHERE [Date action] >= CONVERT(DateTime,'10/08/2010',103) AND [Date action] <= CONVERT(DateTime,'11/08/2010',103) + 1
Merci pour vos réponses, mon problème est résolu :)
There is no place like 127.0.0.1 /