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 : ?
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 : 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 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?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.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
@++![]()
Partager