RESULTAT REQUETE SQL ERRONE
Résolu
bigbik
Messages postés
159
Date d'inscription
Statut
Membre
Dernière intervention
-
bigbik Messages postés 159 Date d'inscription Statut Membre Dernière intervention -
bigbik Messages postés 159 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un grand problème avec ma base de données. j'explique :
- quand je veux sortir les informations de la base par date, j'ai pas le bon résultat. Par exemple pour une recherche comprise entre le 02 et le 06 juin j'ai les résultats certes de cette période mais j'ai aussi les résultats du 02 au 06 mai qui s'affiche.
voici ma requête : select * from online where date between '02/06/2011' and '06/06/2011'
HELP ME PLEASE A TROUVER LA SOLUTION
J'ai un grand problème avec ma base de données. j'explique :
- quand je veux sortir les informations de la base par date, j'ai pas le bon résultat. Par exemple pour une recherche comprise entre le 02 et le 06 juin j'ai les résultats certes de cette période mais j'ai aussi les résultats du 02 au 06 mai qui s'affiche.
voici ma requête : select * from online where date between '02/06/2011' and '06/06/2011'
HELP ME PLEASE A TROUVER LA SOLUTION
A voir également:
- RESULTAT REQUETE SQL ERRONE
- Resultat foot - Télécharger - Vie quotidienne
- Lexer resultat - Télécharger - Sport
- Logiciel sql - Télécharger - Bases de données
- 5/90 resultat ✓ - Forum Excel
- Résultat loto bulgarie autriche azerbaïdjan - Forum Loisirs / Divertissements
17 réponses
Bonjour,
Tu dis que ton champ date est de type varchar ?? C'est une hérésie...
Ce n'est pas du tout étonnant comme comportement... car ton between fera des comparaisons sur l'ordre alphabétique !
Les dates, c'est du type datetime et rien d'autre !
Tu peux t'en sortir en faisant comme ça (testé et approuvé sous SQL Server 2005)
Xavier
(PS : le 103 dans les convert signifie que la date est du type jj/mm/aaaa)
Tu dis que ton champ date est de type varchar ?? C'est une hérésie...
Ce n'est pas du tout étonnant comme comportement... car ton between fera des comparaisons sur l'ordre alphabétique !
Les dates, c'est du type datetime et rien d'autre !
Tu peux t'en sortir en faisant comme ça (testé et approuvé sous SQL Server 2005)
select * from online where convert(datetime, date, 103) between convert(datetime, '02/06/2011', 103) and convert(datetime, '06/06/2011', 103)
Xavier
(PS : le 103 dans les convert signifie que la date est du type jj/mm/aaaa)
Salut,
Tu n'as cas faire un dateDebut + 1 et un dateFin - 1 ?
ou sinon tu prends les dates strictement supérieures à dateDebut, et strictement inférieur a dateFin ?
Ce n'est peut être pas la bonne solution, mais je ferrais comme ça moi ;)
Tout vient à point à qui sait attendre
~~ Cr3u7z0u ~~
Tu n'as cas faire un dateDebut + 1 et un dateFin - 1 ?
ou sinon tu prends les dates strictement supérieures à dateDebut, et strictement inférieur a dateFin ?
Ce n'est peut être pas la bonne solution, mais je ferrais comme ça moi ;)
Tout vient à point à qui sait attendre
~~ Cr3u7z0u ~~
Bonjour,
SELECT *
FROM Online
WHERE date >= '02/06/2011' AND date <= '06/06/2011';
Essayes ça, mais cela dépend du format de ton champs 'date'.
Cordialement.
SELECT *
FROM Online
WHERE date >= '02/06/2011' AND date <= '06/06/2011';
Essayes ça, mais cela dépend du format de ton champs 'date'.
Cordialement.
j'ai d'autres bases mais c'est la première fois que je rencontre ce problème.
le champ date est de type varchar.
Je vais tester et je reviens vers vous. merci d'avance
le champ date est de type varchar.
Je vais tester et je reviens vers vous. merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Creutzou pourrais-tu m'expliquer davantage. je te suis pas à 100%
Cette requête marcherai mais elle n'est pas optimisée du tout, mais sinon pour travailler sur du varchar, il faudrait des conditions like, avec des REquêtes imbriquées, le 'Dawa' quoi ^^
-->
Select *
From Online
Where date = '03/06/2011'
Or date = '04/06/2011'
Or date = '05/06/2011'
Order by date ASC;
-->
Select *
From Online
Where date = '03/06/2011'
Or date = '04/06/2011'
Or date = '05/06/2011'
Order by date ASC;
j'ai déjà pensé à cette solution mais le problème est que j'ai une application qui tourne et qui est censé exécuté la requête sql. du coup l'utilisation de la requête ci-dessous rend la chose plus compliquer je pense.
Select *
From Online
Where date = '03/06/2011'
Or date = '04/06/2011'
Or date = '05/06/2011'
Order by date ASC;
Select *
From Online
Where date = '03/06/2011'
Or date = '04/06/2011'
Or date = '05/06/2011'
Order by date ASC;
en fait j'ai une page html avec deux zone de saisie. raison pour laquelle la requête avec between est intéressant parce que quand la personne saisie les dates alors et clic sur rechercher automatique la recherhe se lance.
Par contre ça devient impossible de traiter la demande si la requête est de la forme ci-dessous
Par contre ça devient impossible de traiter la demande si la requête est de la forme ci-dessous
Ce sont des dates saisies ? je n'avais pas compris ça comme ça, il faut donc bien que tu convertisses tes dates au format date.