Bonjour,
Après beaucoup de temps passé sans succès, j'en appelle au forum.
Ainsi, dans 1 table, j'ai 1 colonne déclarée en TIME.
Je n'arrive cependant pas à le restituer "proprement" dans mon appli sous XE5.
Sous ISQL, ci après quelques essais :
C'est bien sûr ce dernier look que je souhaite
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 SQL> SELECT COL_TIME FROM TEST01; COL_TIME ============= 17:45:00.0000 17:45:00.0000 17:45:00.0000 15:00:02.0000 15:00:14.0000 SQL> SELECT extract(HOUR from COL_TIME)||':'||extract(MINUTE from COL_TIME)||':'||extract(SECOND from COL_TIME) FROM TEST01; CONCATENATION ========================== 17:45:0.0000 17:45:0.0000 17:45:0.0000 15:0:2.0000 15:0:14.0000 SQL> SELECT SUBSTRING(100 + extract(HOUR from COL_TIME) FROM 2 FOR 2)||':'||SUBSTRING(100 + extract(MINUTE from COL_TIME) FROM 2 FOR 2)||':'||SUBSTRING(100 + extract(SECOND from COL_TIME) FROM 2 FOR 2) FROM TEST01; CONCATENATION ================================================================== 17:45:00 17:45:00 17:45:00 15:00:02 15:00:14
Dans mon appli, j'utilise les composants UIB, et un champ TIME (type interne uftTime = 14) est restitué sous forme d'un Cardinal :
Quelques valeurs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part FBMQr.Fields.AsTime[k]
Mais comment passer du Cardinal à l'heure correspondante sachant que:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 17:45:00 => 639000000 15:00:02 => 540020000 15:00:14 => 540140000
- je ne dois pas être dépendant d'une PS ou de fonctions serveur
- je ne peux pas faire 1 requête supplémentaire pour le type TIME (Cf. la 3ème sous ISQL): mon code exploite le type interne "uftxxxx" pour afficher chaque valeur dans 1 grille avec le bon format
Je suis preneur de toutes pistes...
PS: FB 2.1.7
Partager