Format Date dans les champs de DB

Résolu
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 5 nov. 2004 à 18:33
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 6 nov. 2004 à 13:22
Salut à tous
Pour une fois, c'est moi qui suis coincé.

Dans ma table, j'ai un champ au format Date générale (jj/mm/aaaa hh:nn:ss)
Quand j'insère une donnée avec cette méthode
Insert Into MaTable (MaDate) Values (#01/01/2004#)
, j'obtiens des résultats différents avec
31/10/2004 : Le format est respecté
05/11/2004 : Il inverse jour et mois, il reprend le format US

Cette remarque est aussi valable lors de test du style
... Where MaDate < #01/01/2004#


Le résultat est le même dans Access et par mon prog VB avec ADODB sous Jet.4.0

Je respecte pourtant le format date défini dans le panneau de config, et le format d'insertion des dates (avec les #).

J'ai un peu tout essayé, mais si le format change au gré des humeurs du système, je suis un peu paumé.

Si vous avez des idées ... merci

Jack

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 nov. 2004 à 19:20
lol, j'ai enfin trouvé.
En fait, le format des dates n'est pas respecté sous SQL (c'est écrit en tout petit en bas d'une page d'aide Access).

(mon format date contient l'heure aussi)
Donc, pour insérer une date :
- Mettre le format du champ à la française jj/mm/aaaa hh:nn:ss
- Pour insérer une date, ne pas utiliser les # mais des ' :
... Values ('01/01/2004 19:10:14')
Il semble que le # provoque la conversion, mais le problème apparait quand on utilise un format date différent de US.
- Et pour faire les tests, utiliser DateValue et TimeValue :
DateTest = DateAdd("d", -3, Now) ' Il y a 3 jours
... Where MaDate < DateValue('" & DateTest & "') + ' ' + TimeValue('" & DateTest & "')


Eh beh, celle-là, elle m'aura tracassé sévère !
Vala
Jack
3
Arsena Messages postés 190 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 27 septembre 2005
5 nov. 2004 à 19:39
Salut Jack
A tu essayé de cette manière

Dates >= #" & Format(DTDEB,"mm/dd/yyyy") & "# and Dates <= #" & Format(DTFIN,"mm/dd/yyyy") & "# ORDER BY

salut et A+

MD
0
Arsena Messages postés 190 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 27 septembre 2005
5 nov. 2004 à 19:42
J'ai une reponse de retard
A+

MD
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 nov. 2004 à 02:04
Merci Arsena
En ce qui concerne ta proposition, il y a aussi plus court :
... Where MaDate Between Date1 And Date2

Mais mon problème résidait dans l'utilisation des # qui, en fait, fouttent plus le bordel qu'autre chose !

Vala
Jack
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
6 nov. 2004 à 13:22
Salut,
Quelque soit le format de la date dans une base access, à la base c'est du Double. Donc, en général, je n'utilise pas les # (comme tu dis, ça fout le bordel) ni les ' mais par ex :
rs!Date = CDbl(CDate("05/11/2004 10:00:00")).

Cordialement, CanisLupus
0
Rejoignez-nous