J'ai des problèmes pour formater les chiffres dans ma colonne de sélection.J'ai utilisé FORMAT mais cela ne fonctionne pas .
sum(cast(datediff(second, IEC.CREATE_DATE, IEC.STATUS_DATE) as float) / 60) TotalSentMinutes
J'ai utilisé ceci:
FORMAT(sum(cast(datediff(second, IEC.CREATE_DATE, IEC.STATUS_DATE) as float) / 60),2) TotalSentMinutes
ERREUR:
'format' n'est pas un nom de fonction intégré reconnu.
Comment puis-je formater ce calcul?
Essaye celui-là -
DECLARE @i FLOAT = 6.677756
SELECT
ROUND(@i, 2)
, FORMAT(@i, 'N2')
, CAST(@i AS DECIMAL(18,2))
, SUBSTRING(PARSENAME(CAST(@i AS VARCHAR(10)), 1), PATINDEX('%.%', CAST(@i AS VARCHAR(10))) - 1, 2)
, FLOOR((@i - FLOOR(@i)) * 100)
Sortie:
----------------------
6,68
6.68
6.68
67
67
Vous pouvez le convertir en DECIMAL et spécifier une échelle de 2 chiffres
Donc, quelque chose comme
DECLARE @i AS FLOAT = 2
SELECT @i / 3
SELECT CAST(@i / 3 AS DECIMAL(18,2))
Je recommanderais toutefois que cela soit fait dans la couche UI/Report, car cela entraînerait une perte de précision.
Le formatage (à mon avis) devrait se produire au niveau de l'interface utilisateur/rapport/affichage.
Essayez le résultat de conversion en numérique
CAST(sum(cast(datediff(second, IEC.CREATE_DATE, IEC.STATUS_DATE) as float) / 60)
AS numeric(10,2)) TotalSentMinutes
Contribution
1
2
3
Sortie
1,00
2,00
3,00
Votre syntaxe de format est incorrecte. La syntaxe réelle est
FORMAT ( value, format [, culture ] )
S'il vous plaît suivez ce lien, il vous aide
Donc, quelque chose comme
DECLARE @i AS FLOAT = 2
SELECT @i / 3
SELECT CAST(@i / 3 AS DECIMAL(18,2))
Je recommanderais toutefois que cela soit fait dans la couche UI/Report, car cela entraînerait une perte de précision.
DECLARE @i AS FLOAT = 2SELECT @i/3SELECT cast (@i/cast (3 AS DECIMAL (18,2)) sous forme décimale (18,2))
Le facteur et le résultat exigent que la fonte soit considérée comme un nombre décimal.