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

Lazarus Pascal Discussion :

Format horaire : 09H00 ou 9H00 [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Invité
    Invité(e)
    Par défaut Format horaire : 09H00 ou 9H00
    Bonjour

    Le problème est le suivant
    J'enregistre l'heure d'un évènement dans la base de données sous forme d'un String

    Ensuite dans certains traitement j'ai besoin de comparer l'heure en cours avec l'heure enregistrée

    Pour l'heure en cours je l'extrait de la manière suivante : DecodeTime(Now,heure,minute,seconde,milli); (variable heure : Word )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    heure_minute:=IntToStr(heure) + ':' + IntToStr(minute);
    Et pour la comparaison je fais de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (Trim(FieldByName('heure').AsString) = Trim(heure_minute)) Then ...
    Le problème est que l'heure peut être enregistrée de cette manière 09H00 ou 9H00 et là je bloque.

    Pour info l'heure est saisie dans un TDBEdit avec comme masque ##:##;1;_.

    Merci de vos conseils

    Eric
    Dernière modification par Invité ; 14/12/2020 à 08h54.

  2. #2
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 343
    Points : 536
    Points
    536
    Billets dans le blog
    2
    Par défaut
    Encode tes dates systématiquement au format YYYY-MM-DD HH:MN:SS
    Pour l'histoire de 09h00 ou 09:00, fais un StringReplace(MyDateAsString, 'h', ':', [rfIgnoreCase, rfReplaceAll]).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    function DateSqlToTDateTime(const S: string): TDateTime;
    var
      AAAA, MM, JJ: word;
      HH, MN, SS, MS: word;
    begin
      //1234567890123456789
      //2016-08-15 01:02:03
      AAAA := StrToIntDef(Copy(S, 1, 4), 2000);
      MM   := StrToIntDef(Copy(S, 6, 2), 01);
      JJ   := StrToIntDef(Copy(S, 9, 2), 01);
      HH   := StrToIntDef(Copy(S, 12, 2), 00);
      MN   := StrToIntDef(Copy(S, 15, 2), 00);
      SS   := StrToIntDef(Copy(S, 18, 2), 00);
      MS   := 0;
      Result := EncodeDateTime(AAAA, MM, JJ, HH, MN, SS, MS);
    end;
     
    // encodage d'une date en format SQL
    function DateTimeToDateSql(const QD: TDateTime): string;
    const
      SQL_DATE_HEURE_FORMAT = '%.4d-%.2d-%.2d %.2d:%.2d:%.2d';
    var
      QAnnee, QMois, QJour, QHeure, QMinute, QSeconde, QMilliseconde: word;
    begin
      DecodeDate(QD, QAnnee, QMois, QJour);
      DecodeTime(QD, QHeure, QMinute, QSeconde, QMilliseconde);
      Result := Format(SQL_DATE_HEURE_FORMAT,
                       [QAnnee, QMois, QJour,
                        QHeure, QMinute, QSeconde, QMilliseconde
                       ]);
    end;

  3. #3
    Invité
    Invité(e)
    Par défaut En partie résolu merci
    Bonjour merci de votre réponse que j'ai adapté à mon cas

    En fait j'avais oublié la possibilité de formater la sortie avec cette commande : SQL_DATE_HEURE_FORMAT = '%.4d-%.2d-%.2d %.2d:%.2d:%.2d';

    Du coup j'ai adapté votre fonction et c'est top tout fonctionne comme je le souhaite

    Je reconnais que stocker une date au format String n'est pas un bon choix de départ mais je m'appuie sur un modèle de données existant qui ne peut pas être modifié

    Bonne continuation à vous

    Eric

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

Discussions similaires

  1. [XL-2010] Difficultée à concerver le bon format horaire
    Par Camthard dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/08/2010, 21h06
  2. Réponses: 2
    Dernier message: 09/04/2010, 00h10
  3. [VBA E] erreur objet requis sur format horaire
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/06/2006, 18h30
  4. [VBA E] fonction format Horaire
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 15/06/2006, 21h18
  5. Réquête SQL et format horaire
    Par sylviefrfr dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 08/02/2006, 09h19

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