SQL - Arrondi à 2 décimales
J'ai besoin de convertir des minutes en heures, arrondi à 2 décimales.J'ai aussi besoin d'afficher jusqu'à 2 chiffres après la virgule. Donc, si j'ai quelques minutes que 650.Ensuite, les heures doivent être 10.83
Voici ce que j'ai à ce jour:
Select round(Minutes/60.0,2) from ....
Mais dans ce cas, si mes minutes est, disons,de 630 heures est 10.5000000. Mais je veux que 10.50 seulement(après arrondi). Comment puis-je y parvenir?
- Moteur de base de données utilisez-vous?
- Si T-SQL, c'est un double de la stackoverflow.com/questions/3190688/...
Vous devez vous connecter pour publier un commentaire.
Vous ne pourriez pas vous jeter votre résultat que
numeric(x,2)
? Oùx <= 38
Retourne
SELECT ROUND(630/60.0, 2);
me donne10.50
déjà.cast(630/60.0 as numeric(36,2))
est assez10,50
cast (150.755555 as numeric (16,2));
donne150.76
Comme avec SQL Server 2012, vous pouvez utiliser le haut -fonction format:
(juste pour de plus amples lectures...)
1,757.47
vous pouvez utiliser
Requête suivante est utile et simple-
Donne en sortie de 0,25.
Convertir votre numéro à un
Numeric
ouDecimal
.Remplacer votre requête avec le suivant.
Sql server
MySql:
La
Cast
fonction est un wrapper pour leConvert
fonction. Le Couple qu'avec SQL étant un langage interprété, et le résultat est que, même si les deux fonctions produisent les mêmes résultats, il y a un peu plus de choses sur les coulisses de laCast
fonction. À l'aide de laConvert
fonction est une petite économie, mais de petites économies se multiplient.L'extrait de code suivant peut vous aider à:
Ce que jamais vous utilisez dans la dénomination doit être au format décimal, par exemple
1548/100
donnera15.00
Si l'on remplace
100
avec100.0
dans notre exemple, nous allons obtenir15.48
essayez ceci :
SELECT CAST(ROUND([Amount 1]/60,2) AS DECIMAL(10,2)) as TOTAL
Comme un add-on pour les réponses ci-dessous, lors de l'utilisation de INT ou non décimal types de données dans vos formules, n'oubliez pas de multiplier la valeur par 1 et le nombre de décimales que vous préférez.
savoir -
TotalPackages
est unINT
et donc le dénominateurTotalContainers
, mais je veux mon résultat d'avoir jusqu'à 6 décimales.ainsi:
J'ai trouver la fonction STR les plus propres moyens d'y parvenir.