Format de la date
Med
-
Med -
Med -
bonjour
J'ai un problème de format de date et précisament dans le resultat d'une requette sql qui affiche l'ensemble d'activités dont la date comprise entre date1 et date2 de type string .
Le système d"exploitation : Windows XP
Le SGBD : MS Access 2002 (installé avec la langue Anglaise)
OUtil de développement : Ms VB 6
exemple 1
"SELECT NumePers,DateActi,DescActi From Activite _
" WHERE DateActi BETWEEN #14/04/2003# AND #30/04/2003#"
Sachant que ma table Activite contient deux enregistrement datés respectivement "15/04/2003" et "30/04/2003".
Le résultat de cette première requette donne bien le résultat exact
Mais remarqué bien que la deuxième requette (ci-dessous) donne aussi le même résultat cad les deux enregistrement de la table.
Exemple 2 :
"SELECT NumePers,DateActi,DescActi From Activite _
" WHERE DateActi BETWEEN #01/05/2003# AND #07/05/2003#"
Ce que j'ai remarqué c'est que le système à changé le format de la date de "jj/MM/aaaa" au "MM/jj/aaaa"
donc il a traité la requette enchangeant les jours par les mois ce qui donne la requette suivante .
"SELECT NumePers,DateActi,DescActi From Activite _
" WHERE DateActi BETWEEN #05/01/2003# AND #05/07/2003#"
et ca explique bien le résultat donnée (les deux enregistrements de la table)
Les tentatives de correction que j'ai essayé :
- J'ai bien vérifier que le format de la date dans les paramètres régionaux dy système correspond bien à "jj/MM/aaaa"
- Le type de champs DateActi de la Table Activité est datetime/ShortDate.
La solution bête et rejeté à mon avis et de procéder à saisir la date dans le format anglaise "MM/jj/aaaa" pour les paramètres d'entrée Date1 et Date2 puisque mon application et en français.
'________
Je suis vraiment bloqué et j'ai vraiment besoin de votre aide pour résoudre ce problème.
Je compte beaucoup à votre aide
Et Merci d'avance
Med
J'ai un problème de format de date et précisament dans le resultat d'une requette sql qui affiche l'ensemble d'activités dont la date comprise entre date1 et date2 de type string .
Le système d"exploitation : Windows XP
Le SGBD : MS Access 2002 (installé avec la langue Anglaise)
OUtil de développement : Ms VB 6
exemple 1
"SELECT NumePers,DateActi,DescActi From Activite _
" WHERE DateActi BETWEEN #14/04/2003# AND #30/04/2003#"
Sachant que ma table Activite contient deux enregistrement datés respectivement "15/04/2003" et "30/04/2003".
Le résultat de cette première requette donne bien le résultat exact
Mais remarqué bien que la deuxième requette (ci-dessous) donne aussi le même résultat cad les deux enregistrement de la table.
Exemple 2 :
"SELECT NumePers,DateActi,DescActi From Activite _
" WHERE DateActi BETWEEN #01/05/2003# AND #07/05/2003#"
Ce que j'ai remarqué c'est que le système à changé le format de la date de "jj/MM/aaaa" au "MM/jj/aaaa"
donc il a traité la requette enchangeant les jours par les mois ce qui donne la requette suivante .
"SELECT NumePers,DateActi,DescActi From Activite _
" WHERE DateActi BETWEEN #05/01/2003# AND #05/07/2003#"
et ca explique bien le résultat donnée (les deux enregistrements de la table)
Les tentatives de correction que j'ai essayé :
- J'ai bien vérifier que le format de la date dans les paramètres régionaux dy système correspond bien à "jj/MM/aaaa"
- Le type de champs DateActi de la Table Activité est datetime/ShortDate.
La solution bête et rejeté à mon avis et de procéder à saisir la date dans le format anglaise "MM/jj/aaaa" pour les paramètres d'entrée Date1 et Date2 puisque mon application et en français.
'________
Je suis vraiment bloqué et j'ai vraiment besoin de votre aide pour résoudre ce problème.
Je compte beaucoup à votre aide
Et Merci d'avance
Med
A voir également:
- Format de la date
- Format epub - Guide
- Format factory - Télécharger - Conversion & Codecs
- Hp usb disk storage format tool - Télécharger - Stockage
- Format dat - Guide
- Format apfs - Guide
4 réponses
Mon conseil:
Utilise le format de date ISO.
C'est le seul qui ne soit pas ambigu et la majorité des serveurs SQL la reconnaissent et l'interprètent sans erreur.
YYYY-MM-DD
C'est ce qu'on a forcé chez nous, et il n'y a plus d'erreur d'interprétation sur les dates.
Utilise le format de date ISO.
C'est le seul qui ne soit pas ambigu et la majorité des serveurs SQL la reconnaissent et l'interprètent sans erreur.
YYYY-MM-DD
C'est ce qu'on a forcé chez nous, et il n'y a plus d'erreur d'interprétation sur les dates.
salut Seb, salut Med,
seb en fait Access s'accomode assez mal du format ISO
d'ailleurs il y a quelques mois, une comparaison d'access et MySQL et je ne sais plus quelle autre, sûrement Interbase, FoxPro peut-être, avec Ocelot, m'avait montré qu'en fait de ces SGBD aucun ne se conformait à Ocelot (donc à du SQL pur, bon du SQL 99 mais sur ce point précis je ne pense pas qu'il y ait de différences avec SQL92)
Med va falloir passer par une fonction.
Pas le temps maintenant, et de toutes façons je n'utilise qu'access97 (exceptionnellement, si vraiment je n'ai pas le choix, Access 2000), donc il pourrait y avoir des différences d'Access SQL.
je me replongerai là dedans en journée pour me rafraîchir la mémoire et je te tiendrai au courant, mais à vue de pif, faut flanquer une fonction dans ton instruction SQL elle-même (ou alors gérer ça au niveau formulaire si formulaire il y a)
kinder.surprise,
le maton du matou
seb en fait Access s'accomode assez mal du format ISO
d'ailleurs il y a quelques mois, une comparaison d'access et MySQL et je ne sais plus quelle autre, sûrement Interbase, FoxPro peut-être, avec Ocelot, m'avait montré qu'en fait de ces SGBD aucun ne se conformait à Ocelot (donc à du SQL pur, bon du SQL 99 mais sur ce point précis je ne pense pas qu'il y ait de différences avec SQL92)
Med va falloir passer par une fonction.
Pas le temps maintenant, et de toutes façons je n'utilise qu'access97 (exceptionnellement, si vraiment je n'ai pas le choix, Access 2000), donc il pourrait y avoir des différences d'Access SQL.
je me replongerai là dedans en journée pour me rafraîchir la mémoire et je te tiendrai au courant, mais à vue de pif, faut flanquer une fonction dans ton instruction SQL elle-même (ou alors gérer ça au niveau formulaire si formulaire il y a)
kinder.surprise,
le maton du matou
http://www.commentcamarche.org/forum/affich.php3?cat=3&ID=44003&page=1
pour access ça reste à déterminer
kinder.surprise,
le maton du matou
pour access ça reste à déterminer
kinder.surprise,
le maton du matou
Merci à tous ceux qui on essayé à m'aider et surtout à Seb car c'est lui qui m'as donné la solution.
Ca tombe bien seb tu as bien saisie le problème et ta proposition était trés éfficasse pour résoudre le problême, voilà comment j'ai procédé :
Dim SQLQuery as string
SQLQuery ="SELECT NumePers,DateActi,DescActi From Activite " _
" WHERE DateActi BETWEEN #" & Format("01/05/2003","YYYY/MM/DD") & "# AND #" & Format("07/05/2003","YYYY/MM/DD") & "#"
RS.Open SQLQuery,MaConnection
Le résultat était exactement ce qui est Attendu.
Merci Seb
Merci aux autres
Ca tombe bien seb tu as bien saisie le problème et ta proposition était trés éfficasse pour résoudre le problême, voilà comment j'ai procédé :
Dim SQLQuery as string
SQLQuery ="SELECT NumePers,DateActi,DescActi From Activite " _
" WHERE DateActi BETWEEN #" & Format("01/05/2003","YYYY/MM/DD") & "# AND #" & Format("07/05/2003","YYYY/MM/DD") & "#"
RS.Open SQLQuery,MaConnection
Le résultat était exactement ce qui est Attendu.
Merci Seb
Merci aux autres