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
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
Pourquoi vous ne déclarez pas tout simplement un champ de type time ?
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
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).
Oui je sais mais ce n'est pas pour extraire une partie de l'heure ...Extract, extract, extract ....
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.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.
Oui si je ne trouve pas je ferais cela c'etait juste pour eviter de creer des champs supplémentaire.Pourquoi vous ne déclarez pas tout simplement un champ de type time ?
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.
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 c'est pour stocker un interval de temps, alors non, il ne faut pas utiliser le type Time
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 :
TIME1 etant un champ de type Time (juste pour le test)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT EXTRACT(HOUR FROM TIME1)*60 + EXTRACT(MINUTE FROM TIME1) FROM 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.
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
En effet, il faut d'abord consulter les Release notes.
Merci à vous Makowski et Barbibulle
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.
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 ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager