|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 4 ![]() |
Bonjour,
J'ai une base DB2 400 que j'attaque en SQL dans laquel je recupere des champs dont une heure (B1HEUR) au format hhmmss stockée sous forme de nombre entier. Ex :91523 pour 9h15min23sec ou 175022 pour 17h50min22sec. Je cherche comment recuperer avec la fonction HOUR l'heure de ce champ. J'ai voulu essayer tout simplement avec la fonction LEFT au début mais l'heure est soit sur 1 caractere soit sur 2 caracteres (voir exemple ci-dessus). Donc, je veux utiliser la fonction HOUR() mais quand je met ma variable B1HEUR en parametre, il ne me la prend pas car elle n'est pas au format "hh:mm:hss". Donc, comment isoler cette heure ? Soit trouver un moyen de convertir mon champ en hh:mm:ss pour utiliser HOUR() soit trouver un moyen de caller ma variable sur 6 caracteres. Ex 091523 pour 9h15min23sec. Et ainsi, pouvoir récupérer avec la fonction LEFT les 2 premiers caracteres. D'avance merci |
|
|
00
|
|
|
#2 |
![]() ![]() |
Si les minutes et les secondes représentent toujours 4 caractères, tu prends les N caractères de gauche avec N = longueur de la chaîne - 4.
Un truc du genre : Code :
LEFT(colonne_heure, LENGTH(colonne_heure) - 4)
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 4 ![]() |
Arfffff, j'y croyais, je ne trouvais pas cette fonction toute bête de longueur de chaine.
MAIS mais non car ... LENGTH me retourne toujours 6 même si je n'ai que 5 chiffres. Il faudrai pouvoir transformer la chaine en CHAR sur 6 caracteres et pouvoir mettre un zero devant. Une autre idée pour le coup. Re merci |
|
|
00
|
|
|
#4 |
![]() ![]() |
Quel est le type de la colonne ?
Si c'est un CHAR(6), je crois qu'un blanc est automatiquement ajouté devant (ou derrière ? à vérifier) la vraie chaîne saisie. Tu devrais alors pouvoir utiliser une fonction TRIM pour supprimer les blancs.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 4 ![]() |
Elle est déclarée comme étant de type 'ZONED' de longueur 6, 6 chiffres et 0 decimale.
A l'execution, quand je recupere la valeur complete, j'ai 5 chiffres sans blanc ou 6 chiffres sans blanc mais length me retourne 6 toujours |
|
|
00
|
|
|
#6 |
![]() ![]() |
Une petite astuce, ajoutez 1000000 à votre entier, la position de votre heure sera toujours fixée !
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 4 ![]() |
Petite astuce ????
Pourquoi 'petite' ? Moi je dis Graaaaaande Astuce !!! Salut et encore merci, puis merci puis merci. By PS : merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com