test sur longueur d'un champ numérique / conversion - SQL/NoSQL - Programmation
Marsh Posté le 29-05-2006 à 15:28:48
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 )
Marsh Posté le 29-05-2006 à 15:29:33
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...
Marsh Posté le 29-05-2006 à 16:12:33
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
Marsh Posté le 29-05-2006 à 16:24:16
ok j'ai ca aussi
right('0'+cast(champHeure as varchar(6)),6) et ca marche mais je cherche mieux ! qui plus subtile ?
Marsh Posté le 29-05-2006 à 15:08:49
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