Bonjour,
Je voudrais placer un " : " après le 1er chiffre dans un champ de type INT.
Exemple :
950 --> 9:50
SELECT heure from matable
Faut-il d'abord le convertir en string et surtout comment fais-t'on pour placer ce : ?
Version imprimable
Bonjour,
Je voudrais placer un " : " après le 1er chiffre dans un champ de type INT.
Exemple :
950 --> 9:50
SELECT heure from matable
Faut-il d'abord le convertir en string et surtout comment fais-t'on pour placer ce : ?
Effectivement vous désirez faire de la manipulation de chaîne de caractères :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 With MaTable (heure) as ( select 0 union all select 10 union all select 950 union all select 789453456 ) SELECT heure, left(cast(heure as varchar), 1) + ':' + substring(cast(heure as varchar), 2, len(heure)-1) as heure_char FROM MaTable; heure heure_char ----------- -------------------------------- 0 0: 10 1:0 950 9:50 789453456 7:89453456
Bojour,
Encore des choses qui devraient être faites du côté de l'application ... ;)
@++ ;)
Ça fonctionne mais je n'ai compris à quoi servait toutes les fonctions. Une petite explication :lol: ?
Code:
1
2
3
4 SELECT heure, LEFT(cast(heure AS varchar), 1) + ':' + substring(cast(heure AS varchar), 2, len(heure)-1) AS heure_char FROM MaTable;
Habituellement c'est la méthode que j'emploie, mais j'ai une demande ou tous doit se faire en base via une seule requête. ;)Citation:
Encore des choses qui devraient être faites du côté de l'application ...
CAST(heure AS VARCHAR) trantype le INT en chaîne de caractères.
un LEFT(expression, 1) retourne le premier caractère à gauche de cette chaîne.
L'instruction substring(cast(heure AS varchar), 2, len(heure)-1) retourne donc la partie droite de la chaîne après le 1er caractère : le 2e ;)
@++ ;)