IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Manipuler le format date/heure [AC-2003]


Sujet :

Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Analyste économétrie
    Inscrit en
    Février 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste économétrie
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2012
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Manipuler le format date/heure
    Salut à vous,

    Je n'ai trouvé ni discussions sur ce format, ni de sujets dans le FAQ.

    Je cherche à mettre un critère avec un opérateur "entre" pour un champ date/heure.

    J'ai essayé ce qui me paraissait le plus logique, à savoir entre #mm/dd/yyyy# 'hh/mm/ss' et #mm/dd/yyyy# 'hh/mm/ss'. Et d'autres options en vain.

    Je n'ai pas non plus trouvé de fonctions transformant le format date/heure en format heure pour opérer tranquillement.

    Si vous avez une idée, je vous en serai gré !

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    dans une requête j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    between "#" & format(DateSerial(aaaa0; mm0; jj0)+TimeSerial(hh0;mn0;ss0),"aaaa-mm-jj hh:nn:ss") and format(DateSerial(aaaa1; mm1; jj1)+TimeSerial(hh1;mn1;ss1),"aaaa-mm-jj hh:nn:ss") & "#"
    aaaa0, mm0, jj0, hh0, mn0, ss0 sont les valeurs des éléments de la première date/heure
    aaaa1, mm1, jj1, hh1, mn1, ss1 sont les valeurs des éléments de la seconde date/heure

    Le format n'est pas indispensable mais il évite les ambiguités. 01/02/2012 peut être vu comme le 1er Fev 2012 ou le 2 Jan 2012 selon les systèmes. 2012/02/01 est toujours vu comme le 1 fev 2012.

    Le # est un délimiteur de date.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Analyste économétrie
    Inscrit en
    Février 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste économétrie
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2012
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Merci bcp marot_r !

    En revanche, en tant que grosse buse, j'ai des problèmes de syntaxe ...
    Si toi ou un autre voit la (les) boulettes ...

    Voila la bête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((Adecvent.dt_creat) Between "#" & format(DateSerial(2012; 04; 23)+TimeSerial(00;00;00),"2012-04-24 00:00:00") And format(DateSerial(2012; 04; 29)+TimeSerial(23;59;59),"2012-04-29 23:59:59") & "#" )
    Faut-il enlever les trémas ? Les fonctions données existent elle bien dans cette version d 'access ?

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Il ne faut pas remplacer "aaaa-mm-jj hh:nn:ss" par "2012-04-29 23:59:59".

    Le "aaaa-mm-jj hh:nn:ss" ou "yyyy-mm-dd hh:nn:ss" (si tu es en Anglais ou dans du code) décrit le format selon laquelle la date doit être présentée.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Analyste économétrie
    Inscrit en
    Février 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste économétrie
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2012
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Ok merci bien. Déjà un bug en moins, mais il en reste au moins un, je crois être fidèle à ta proposition cette fois, à savoir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Between "#" &  format(DateSerial(2012; 04; 23)+TimeSerial(00;00;00),"yyyy-mm-dd hh:nn:ss")  And  format(DateSerial(2012; 04; 29)+TimeSerial(23; 59; 59),"yyyy-mm-dd hh:nn:ss") & "#"
    Pourtant, Access me signale que j'ai "omis un opérande ou un opérateur, ou que j'ai entré un caractère ou une virgule non valide, ou encore du texte sans délimiter par des guillemets"...

    J'ai bien essayé de substituer les fonctions anglaises en français (celles ci existent bien dans les fonctions intégrées), par contre pas de trace de la fonction "format" seule.

    J'ai alors mis un point virgule au lieu d'une virgule avant le "yyyy-mm-dd hh:nn:ss" dans les deux fonctions, et je passe au message suivant : type de données incompatibles dans l'expression du critère.

    J'ai essayé en rajoutant des & "#" & avant et après le and. C 'est pas ca non plus.

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Désolé je pense que je me suis mélangé avec du SQL généré par du VBA, essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Between DateSerial(2012; 04; 23)+TimeSerial(00;00;00) And DateSerial(2012; 04; 29)+TimeSerial(23; 59; 59)
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Analyste économétrie
    Inscrit en
    Février 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste économétrie
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2012
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Ouai, c'est tout bon !

    Par contre, c'est du genre à ralentir la requête ! Vache !

    Merci pour ta patience.

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Par contre, c'est du genre à ralentir la requête ! Vache !
    Pas supposé, les fonctions standards de Access ont peu ou pas d'impact sur le temps d'éxécution des requêtes.

    Est-ce le between ou le calcul de la date qui ralenti ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] problème format DATE HEURE
    Par benoi dans le forum Excel
    Réponses: 3
    Dernier message: 14/09/2009, 14h05
  2. vérifier le format date heure en shell (ksh)
    Par susu39 dans le forum Linux
    Réponses: 9
    Dernier message: 21/08/2008, 10h42
  3. format date/heure dans le code
    Par Invité dans le forum VBA Access
    Réponses: 2
    Dernier message: 19/10/2007, 20h24
  4. utiliser un format "date heure" dans une formule
    Par Tonton Phil dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/08/2007, 14h37
  5. format date/heure et concaténation
    Par Waluigi dans le forum Access
    Réponses: 3
    Dernier message: 02/06/2006, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo