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

SQL Firebird Discussion :

Conversion heure en Integer


Sujet :

SQL Firebird

  1. #1
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut Conversion heure en Integer
    Bonjour,

    J'aimerais savoir svp si il y a un moyen de convertir en Integer une heure saisie dans une application pour que je puisse la stocker dans un champ d'une table ?

    Quelque chose comme le CAST (current_time as Integer)

    Je vous remercie
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Pourquoi vous ne déclarez pas tout simplement un champ de type time ?

  3. #3
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    Extract, extract, extract ....
    ça existe depuis très très longtemps (avant même que Firebird ne s'appelle Firebird)

    cf :http://www.firebirdsql.org/refdocs/l...5-extract.html
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  4. #4
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Ah on n'a apparemment pas compris la même chose du problème posé .

    Moi j'ai compris qu'il saisissait dans une heure/minute/sec dans une application et il voulait l'enregistrer dans la base de données.

    Et Makowski a compris qu'il cherchait à extraire l'heure d'un champ Time (ou timestamp).

  5. #5
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Extract, extract, extract ....
    Oui je sais mais ce n'est pas pour extraire une partie de l'heure ...

    Moi j'ai compris qu'il saisissait dans une heure/minute/sec dans une application et il voulait l'enregistrer dans la base de données.
    Exactement ca mais transformer en integer parce que j'ai vu ca dans une BD FireBird on saisi l'heure dans un DBGrid et c'est stocké en integer et ensuite pour lire cette heure stocker on récupere cette valeur integer et on la divise par 60.

    Pourquoi vous ne déclarez pas tout simplement un champ de type time ?
    Oui si je ne trouve pas je ferais cela c'etait juste pour eviter de creer des champs supplémentaire.
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  6. #6
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Je crois que c'est un peu confus dans votre esprit.

    Si dans votre application vous demandez de saisir une heure (donc un simple chiffre compris entre 0 et 24) il vous suffit de l enregistrer dans la base dans un smallint.

    Si vous voulez enregistrer une heure avec des minutes et pourquoi pas seconde utilisez simplement le type Time. Je ne vois pas l'intérêt qu'il y aurait à le transformer en integer...

    Vous confondez peut etre avec un post qui parle du format date et time. En interne ces types des données sont en effet stoquées sous forme de nombre de jour depuis une date prise pour origine et time le nombre de milli-seconde depuis 00:00:00.000.

  7. #7
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    non je ne pense pas que c'est confus...... je pouvais trés bien utiliser le type time pour définir un interval de durée d'ailleurs c'est la seule chose qui se présente mais le problème est que j'ai vu des heures (par ex : 12:15:00) stocker en entier mais bon.... j'utiliserais le type time pourquoi se compliquer les choses.

    Merci quand même
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  8. #8
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    si c'est pour stocker un interval de temps, alors non, il ne faut pas utiliser le type Time
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  9. #9
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Bonjour,

    En effet le type time pour un interval de temps...ca marche pas je n'obtiens pas le bon résultat lorsque je fais la différence entre 2 heures mais par contre j'ai réussi à stocker l'heure en type Integer ce sont les minutes qui sont stockées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT EXTRACT(HOUR FROM TIME1)*60 + EXTRACT(MINUTE FROM TIME1) FROM TEST;
    TIME1 etant un champ de type Time (juste pour le test)
    je supposerais qu'il est récuperer en tant que valeur Time depuis le client

    Pour 07:35:00 par exemple, ca donne 455 minutes.
    Pour récuperer l'heure, on fait 455 DIV 60 ca donne la partie entiere qui est l'heure. Pour obtenir les minutes, on fait 455 MOD 60. Mais comme j'arrive pas à déclarer l'opérateur modulo en tant qu'UDF (curieux ...il est pourtant bien dans ib_udf2 mais pas de DLL correspondante) alors je fais autrement ou sinon depuis l'application cliente.
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  10. #10
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    MOD MOD( <number>, <number> ) Modulo: MOD(X, Y) returns the remainder part of the division of X by Y.

    cf http://www.firebirdsql.org/rlsnotesh...rnfb210-appx-A

    fonction interne dans Firebird 2.1
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  11. #11
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    En effet, il faut d'abord consulter les Release notes.
    Merci à vous Makowski et Barbibulle
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  12. #12
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Requete finale
    Bonjour,

    Votre requete m'interesse fortement.
    C'est exactement ce que je recherche.
    Pouvez vous me donner le résultat de votre requete finale intégrant le modulo?
    Je n'arrive pas à la mettre en place.
    Il n'arrive pas à faire le modulo d'un datetime.

    Merci d'avance.

  13. #13
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Bonsoir,

    Désolé pour le temps à répondre je n'ai plus remis les pieds ici depuis un bon bout de temps. Mais mieux vaut tard que jamais dit-on (????)

    Je ne me souviens plus de cette requête (ca date de 2008)
    parce que je crois l'avoir abandonner. Je ne sais même plus dans quelle contexte je voulais l'utiliser. Mais en tout cas les SELECT EXTRACT donnent de bons résultats sinon, que voulez-vous faire exactement ?
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

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

Discussions similaires

  1. Conversion heures minutes en heures centièmes
    Par shaman262 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 24/10/2005, 17h53
  2. [MsSQL 2000]Conversion heure GMT
    Par prophetky dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 30/08/2005, 17h27
  3. conversion text vers integer
    Par jawad.t dans le forum Connexion aux bases de données
    Réponses: 3
    Dernier message: 10/06/2005, 20h35
  4. Réponses: 3
    Dernier message: 12/05/2005, 12h10
  5. Conversions de String à Integer
    Par Rank dans le forum Langage
    Réponses: 5
    Dernier message: 06/08/2003, 16h30

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