OVH Cloud OVH Cloud

Manipulation de date

7 réponses
Avatar
cThy
Bonjour,

J'essaye de faire une requete sql dans access 2000 qui me permette de trier
des dates qui soient inférieure à celle passée en paramètre. Cela fonctionne
bien tant que ma date passée en paramètre est du même mois que celles
testées. Après il me renvoie systématiquement toutes les dates.

Par exemple avec la liste ci-dessous si je demande les dates inférieurs à
03/17/2004 13:00:00 :
SELECT * FROM expedition WHERE date_diffusion <= #03/17/2004 13:00:00# ORDER
BY date_diffusion DESC
j'obtiens bien les 5 première lignes mais si je fait la requete suivante :
SELECT * FROM expedition WHERE date_diffusion <= #11/05/2004 13:00:00# ORDER
BY date_diffusion DESC
j'obtiens toutes les dates alors que je ne devrais obtenir que les 10
premières.
Une idée ?

16/03/2004 16:11:03
16/03/2004 16:32:01
16/03/2004 16:33:47
16/03/2004 16:34:15
16/03/2004 16:42:51
17/03/2004 17:36:14
17/03/2004 17:38:08
11/05/2004 12:42:04
11/05/2004 12:43:10
11/05/2004 12:56:09
11/05/2004 13:01:53
11/05/2004 13:02:06
11/05/2004 13:02:47
11/05/2004 13:03:39
11/05/2004 13:04:41
12/05/2004 12:34:26
12/05/2004 12:36:42
12/05/2004 17:22:38

Merci

7 réponses

Avatar
Raymond [mvp]
Bonjour.

Une idée ?

Vu que tu indiques tes dates en US, ce qui est bien , il faut indiquer aussi

les heures en US.
#11/05/2004 13:00:00# ==> #11/5/2004 1:00:00 PM#
#12/05/2004 17:22:38# ==> #5/12/2004 5:22:38 PM#
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"cThy" a écrit dans le message de
news:
Bonjour,

J'essaye de faire une requete sql dans access 2000 qui me permette de
trier

des dates qui soient inférieure à celle passée en paramètre. Cela
fonctionne

bien tant que ma date passée en paramètre est du même mois que celles
testées. Après il me renvoie systématiquement toutes les dates.

Par exemple avec la liste ci-dessous si je demande les dates inférieurs à
03/17/2004 13:00:00 :
SELECT * FROM expedition WHERE date_diffusion <= #03/17/2004 13:00:00#
ORDER

BY date_diffusion DESC
j'obtiens bien les 5 première lignes mais si je fait la requete suivante :
SELECT * FROM expedition WHERE date_diffusion <= #11/05/2004 13:00:00#
ORDER

BY date_diffusion DESC
j'obtiens toutes les dates alors que je ne devrais obtenir que les 10
premières.
Une idée ?

16/03/2004 16:11:03
16/03/2004 16:32:01
16/03/2004 16:33:47
16/03/2004 16:34:15
16/03/2004 16:42:51
17/03/2004 17:36:14
17/03/2004 17:38:08
11/05/2004 12:42:04
11/05/2004 12:43:10
11/05/2004 12:56:09
11/05/2004 13:01:53
11/05/2004 13:02:06
11/05/2004 13:02:47
11/05/2004 13:03:39
11/05/2004 13:04:41
12/05/2004 12:34:26
12/05/2004 12:36:42
12/05/2004 17:22:38

Merci




Avatar
Eric
"Raymond [mvp]" écrivait
news::

Bonjour.

Une idée ?

Vu que tu indiques tes dates en US, ce qui est bien , il faut indiquer

aussi les heures en US.
#11/05/2004 13:00:00# ==> #11/5/2004 1:00:00 PM#
#12/05/2004 17:22:38# ==> #5/12/2004 5:22:38 PM#


Bonjour Raymond,

Quelle est le format de la commande format pour avoir les dates (format
général) au format US heures comprises
Format(unedate,"mm/dd/aaaa xx:xx:xx YY") ?
x & Y à trouver ;-)
Je sèche

Eric


Avatar
Eric
Eric écrivait

Bonjour Raymond,

Quelle est le format de la commande format pour avoir les dates (format
général) au format US heures comprises
Format(unedate,"mm/dd/aaaa xx:xx:xx YY") ?
x & Y à trouver ;-)
Je sèche

Eric



J'ai presque trouvé

Format(UneDate, "mm/dd/yyyy hh:nn:ss") mais pas pour AM ou PM
le seul fait de permuter les mois et jours suffit apparemment

Eric

Avatar
Raymond [mvp]
Bonjour.
ci-dessous les commandes et le résultat:
Debug.Print FormatDateTime(Now, vbGeneralDate)
Debug.Print FormatDateTime(Now, vbLongDate)
Debug.Print FormatDateTime(Now, vbShortDate)
Debug.Print FormatDateTime(Now, vbLongTime)
Debug.Print FormatDateTime(Now, vbShortTime)
Debug.Print Format$(Now, "ddd, mmm d, yyyy")
Debug.Print Format$(Now, "mmm d, H:MM am/pm")
Debug.Print Format$(Now, "dddd d mmm yyyy")
Debug.Print Format$(Now, "dddd d mmm yyyy hh:nn:ss")

13/05/2004 18:11:03
jeudi 13 mai 2004
13/05/2004
18:11:03
18:11
jeu., mai 13, 2004
mai 13, 6:11 pm
jeudi 13 mai 2004
jeudi 13 mai 2004 18:11:03

En temps réel.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Eric" a écrit dans le message de
news:
Bonjour Raymond,

Quelle est le format de la commande format pour avoir les dates (format
général) au format US heures comprises
Format(unedate,"mm/dd/aaaa xx:xx:xx YY") ?
x & Y à trouver ;-)
Je sèche

Eric


Avatar
Eric
re Raymond

jeudi 13 mai 2004 18:11:03

En temps réel. Ca c'est très sympa de ta part ;-)


Je viens de constater que sur les fonctions RechDom, MaxDom lorsque tu
travailles sur des dates au format général, tu retrouves bien la valeur du
champ mais si tu fais un RechDom(Champ1;table1;[Date1]=# & MaxDom
(Date2;table2) & "#") c'et a dire une maxdom sur une date, servant de
critere à la recherche) imbriquée dans un rechdom, la condition travaille
en date US et non Fr.
De meme, je ne peut pas mettre dans un controle texte en source de données
=Format(MaxDom(Date1;Table1);"mm/dd/yyyy hh:nn:ss"). A la validation Access
me le traduit en :
=Format(...;"mm/""dd""/""yyyy ""hh:nn:ss") sans m'avertir de quelque
manière que ce soit, sauf à l'affichage bien sur. Il ne le reconnait pas
comme un format défini par l'utilisateur et donc nous limite à ses propres
format de champ Date/Heure.

As tu ce problème ?

En vba, dans mon dlookup intégrant le Dmax sur la date, je suis aussi
obligé de formater en date US le dmax, sinon la recherche renvoie Null

Eric

PS : j'avais aussi essayé avec FormatDateTime mais ca ne changeait rien car
vbGeneralDate récupère les valeurs de Windows

Avatar
Raymond [mvp]
Mon cher Eric, il faut arrêter le p'tit blanc du matin qui fait encore de
l'effet le soir.

si tu as des ; tu es en francisé don yyyyªaa dd=jj

Format(MaxDom(Date1;Table1);"mm/jj/aaaa hh:nn:ss").

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Eric" a écrit dans le message de
news:

re Raymond

jeudi 13 mai 2004 18:11:03

En temps réel. Ca c'est très sympa de ta part ;-)


Je viens de constater que sur les fonctions RechDom, MaxDom lorsque tu
travailles sur des dates au format général, tu retrouves bien la valeur du
champ mais si tu fais un RechDom(Champ1;table1;[Date1]=# & MaxDom
(Date2;table2) & "#") c'et a dire une maxdom sur une date, servant de
critere à la recherche) imbriquée dans un rechdom, la condition travaille
en date US et non Fr.
De meme, je ne peut pas mettre dans un controle texte en source de données
=Format(MaxDom(Date1;Table1);"mm/dd/yyyy hh:nn:ss"). A la validation
Access

me le traduit en :
=Format(...;"mm/""dd""/""yyyy ""hh:nn:ss") sans m'avertir de quelque
manière que ce soit, sauf à l'affichage bien sur. Il ne le reconnait pas
comme un format défini par l'utilisateur et donc nous limite à ses propres
format de champ Date/Heure.

As tu ce problème ?

En vba, dans mon dlookup intégrant le Dmax sur la date, je suis aussi
obligé de formater en date US le dmax, sinon la recherche renvoie Null

Eric

PS : j'avais aussi essayé avec FormatDateTime mais ca ne changeait rien
car

vbGeneralDate récupère les valeurs de Windows



Avatar
Eric
"Raymond [mvp]" écrivait news:OiNqCwQOEHA.3300
@TK2MSFTNGP09.phx.gbl:

Mon cher Eric, il faut arrêter le p'tit blanc du matin qui fait encore de
l'effet le soir.


Quel idiot suis-je !
Suis sur 2 trucs en //, dans une bd je travaille sur des formulaires en
mode design et dans l'autre en vba, donc je passais tout au dernier format
manipulé.

Du coup, je vais me lancer sur l'apéro ;-)
A+
Eric