Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1041 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  test sur longueur d'un champ numérique / conversion

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

test sur longueur d'un champ numérique / conversion

n°1376734
systemanag​er
Posté le 29-05-2006 à 15:08:49  profilanswer
 

bonjour,
j'ai deux champs numériques pour la date (8 positions) et l'heure (6 positions) : ex 20060501 pour le 01/05/06 et 102825 pour 10h28mn25s
 
=> Pble : si l'heure passe à 091005 le résulat est tronqué !

Requete utilisée :  

SUBSTRING(CAST(lechampDate as varchar), 7,2)+'/'+SUBSTRING(CAST(lechampDate  as varchar),5,2)+'/'+SUBSTRING(CAST(lechampDate  as varchar),1,4)
    +' '+
SUBSTRING(CAST(lechampHeure  as varchar),1,2)+':'+SUBSTRING(CAST(lechampHeure as varchar),3,2)+':'+SUBSTRING(CAST(lechampHeure as varchar),5,2)
 
Donc je dois tester avec len(lechampHeure) si 6 ou 5 / Auriez vous quelque chose de plus simple
 
Merci


Message édité par systemanager le 29-05-2006 à 15:09:25
mood
Publicité
Posté le 29-05-2006 à 15:08:49  profilanswer
 

n°1376738
Arjuna
Aircraft Ident.: F-MBSD
Posté le 29-05-2006 à 15:28:48  profilanswer
 

regarde du côté de la fonction "lpad"
 
tu peux aussi l'émuler en concaténant '000000' devant un to_char de ton heure, et en ne prenant que les 6 derniers caractères (ça fait la même chose que le LPAD, mais en plus goret ;))

n°1376740
Arjuna
Aircraft Ident.: F-MBSD
Posté le 29-05-2006 à 15:29:33  profilanswer
 

PS: sâchant qu'il n'y a pas de LPAD sous SQL Server, hors ta syntaxe ressemble à cette de SQL Server du coup je préfère proposer les deux méthodes...

n°1376791
systemanag​er
Posté le 29-05-2006 à 16:12:33  profilanswer
 

Arjuna a écrit :

PS: sâchant qu'il n'y a pas de LPAD sous SQL Server, hors ta syntaxe ressemble à cette de SQL Server du coup je préfère proposer les deux méthodes...


oui pas de lpad pour Sql server bien domage
 
si je force la position soit avec : select '0'+cast(lechampHeure as varchar) ou par right('00000000'+lechampHeure,7)
 
mais sans succes j'ai toujours l'omission du '0' devant 94212 au lieu de 094212


Message édité par systemanager le 29-05-2006 à 16:14:43
n°1376800
systemanag​er
Posté le 29-05-2006 à 16:24:16  profilanswer
 

ok j'ai ca aussi
right('0'+cast(champHeure as varchar(6)),6) et ca marche mais je cherche mieux ! qui plus subtile ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  test sur longueur d'un champ numérique / conversion

 

Sujets relatifs
problème de test Voyage 200Répertoire par defaut avec un champ parcourir
repérer un champ javascript dynamiquementconvertion d´un texte en valeur numerique
AWK: Probleme avec longueur des noms de fichiers de donnéesConversion de types en C
Mise à jour d'un champcalcul numerique
Test de XQuery SAXON - Problème de Compilationcase à cocher et champ ENUM(table) [RESOLU]
Plus de sujets relatifs à : test sur longueur d'un champ numérique / conversion


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR