Format Date dans les champs de DB [Résolu]

Signaler
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
cs_CanisLupus
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 154 internautes nous ont dit merci ce mois-ci

Messages postés
190
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
27 septembre 2005

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
Messages postés
190
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
27 septembre 2005

J'ai une reponse de retard
A+

MD
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
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
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
11
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