funemul
Messages postés16Date d'inscriptionlundi 13 janvier 2003StatutMembreDernière intervention10 février 2003
-
22 janv. 2003 à 10:51
vanden66
Messages postés1Date d'inscriptionlundi 27 novembre 2000StatutMembreDernière intervention14 février 2006
-
14 févr. 2006 à 12:10
Voila le probleme :
J'utilise un Tquery et ma requete est la suivante :
SELECT * FROM annee_2003 WHERE DATE_DU = 01-12-2003
Et la requete ne me selectionne aucun enregistrement :( (le champ existe ;) )
En fait malgré ts les sujets qui sy rapportent, j ai un gros probleme avec la comparaison de date ds les requetes ((
Cette requete c juste pour tester, en fait le but est de faire un requete suivant le mois de la date.
Donc j ai fait ca :
SELECT * FROM annee_2003 WHERE EXTRACT (MONTH FROM DATE_DU) = 1
... et la supermessage d erreur La table est en lecture seule :( Je precise que ce n est pas du a la table etant donné que les requetes de base select fonctionnent
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 22 janv. 2003 à 12:24
SQL reconnait les dates quand :
1- elles sont entourées de quotes (simples ou doubles)
2- quand elles ont au format MM-DD-YYYY, c'est à dire moi, jour et année (style anglo-saxon).
funemul
Messages postés16Date d'inscriptionlundi 13 janvier 2003StatutMembreDernière intervention10 février 2003 22 janv. 2003 à 13:22
Merci de votre aide mais ca ne marche toujours pas,quand je mets des cotes il me met n erreur sql generale, je pense qu'il n'en faut pas. De mm Delphiprog ma date est deja au format MM-DD-YYYY ;) et dautres formats ne fonctonnent pas non plus :(
Et pour le extract, savez vous pkoi il me renvoie cette erreur ?
vanden66
Messages postés1Date d'inscriptionlundi 27 novembre 2000StatutMembreDernière intervention14 février 2006 14 févr. 2006 à 12:10
Je sais pas si tu as résolu ton problème mais le format de date reconnu par SQL est yyyy-mm-dd (indépendant de tes paramètres régionaux du panneau de configuration) :
TaRequete.Close;
TaRequete.SQL.clear;
TaRequete.SQL.Add('SELECT * FROM annee_2003 where DATE_DU="2006-01-30" ');
TaRequete.open;
Tu peux aussi avoir un problème par rapport au format du champ dans ta base de données.
Par exemple si ton champ de base de données est au format DATETIME et non DATE, ta requète ne te renverra que les enregistrements
avec la date demandée mais seulement celles avec une date nulle (00:00:00).
En effet, quand on teste un champ DATETIME, SQL teste aussi l'heure:
Requete Enregistrement de la base de données
'SELECT * FROM annee_2003 where DATE_DU="2006-01-30"' "2006-01-30" (DATE) -->retour OK
'SELECT * FROM annee_2003 where DATE_DU="2006-01-30"' "2006-01-30 00:00:00" (DATETIME) -->retour OK
'SELECT * FROM annee_2003 where DATE_DU="2006-01-30"' "2006-01-30 12:35:00" (DATETIME) -->pas de retour car heure <>
Tu peux aussi extraire seulement la date par :
TaRequete.SQL.Add('SELECT * FROM annee_2003 where date(DATE_DU)="2006-01-30"'