Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
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 05/05/2008, 11h17   #1
Nouveau Membre du Club
 
Inscription : juillet 2002
Messages : 72
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 72
Points : 25
Points : 25
Par défaut Requête fausse sur des dates

Bonjour

Quand je passe la requête suivante sur ma table
Code :
1
2
3
4
5
 
SELECT COUR_NUM, TO_CHAR(COUR_DAT_ENVOI,'DD/MM/YYYY') AS DAT_ENVOI 
FROM COUR
WHERE COUR_DAT_ENVOI > TO_DATE('19/02/2008','DD/MM/YYYY')
ORDER BY COUR_NUM ASC
J'obtiens en résultat des lignes avec une date d'envoi égale au 19/02/2008. Je ne vois pas ce qui est faux dans ma requête ?

Résultat :

08-00207 19/02/2008
08-00213 19/02/2008
08-00228 19/02/2008
korrigan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 11h22   #2
Nouveau Membre du Club
 
Inscription : juillet 2002
Messages : 72
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 72
Points : 25
Points : 25
Au temps pour moi ma requête était effectivement incorrecte. Cela fonctionne comme ceci

Code :
1
2
3
4
5
 
SELECT *
FROM COUR
WHERE TO_DATE(COUR_DAT_ENVOI,'DD/MM/YYYY') > TO_DATE('19/02/2008','DD/MM/YYYY')
ORDER BY COUR_NUM ASC
korrigan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 11h28   #3
Membre chevronné
 
Avatar de philcero
 
Inscription : septembre 2007
Messages : 519
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2007
Messages : 519
Points : 649
Points : 649
Le type date comprenant également les informations horaires, ta comparaison demande ce qui a été expédié à partir du 19/02/2008 00h00m. Si tu as un envoi ce même jour à 11h43m, il est valide.

Utilise dans ton code la fonction TRUNC pour ta date :
Code :
WHERE trunc(COUR_DAT_ENVOI) > TO_DATE('19/02/2008','DD/MM/YYYY')
philcero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 12h47   #4
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 459
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 459
Points : 4 226
Points : 4 226
Citation:
Envoyé par korrigan Voir le message
Au temps pour moi ma requête était effectivement incorrecte. Cela fonctionne comme ceci

Code :
1
2
3
4
5
 
SELECT *
FROM COUR
WHERE TO_DATE(COUR_DAT_ENVOI,'DD/MM/YYYY') > TO_DATE('19/02/2008','DD/MM/YYYY')
ORDER BY COUR_NUM ASC
PAS de to_date sur une date.
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h49.


 
 
 
 
Partenaires

Hébergement Web