J'ai besoin de convertir les minutes en heures, arrondies à 2 décimales. Je dois également afficher uniquement jusqu'à 2 chiffres après la virgule. Donc, si je dispose de 650 minutes, les heures devraient être de 10,83.
Voici ce que j'ai jusqu'à présent:
Select round(Minutes/60.0,2) from ....
Mais dans ce cas, si mes minutes sont, disons, 630 - les heures sont 10,5000000. Mais je veux seulement 10,50 (après arrondi). Comment puis-je y parvenir?
Réponses:
Pourriez-vous pas diffuser votre résultat comme
numeric(x,2)
? Oùx <= 38
Retour
la source
SELECT ROUND(630/60.0, 2);
me donne10.50
déjà.cast(630/60.0 as numeric(36,2))
est assez10,50
Comme avec SQL Server 2012, vous pouvez utiliser la fonction de formatage intégrée :
(juste pour d'autres lectures ...)
la source
1,757.47
vous pouvez utiliser
la source
la source
la source
la source
Fonctionne à la fois avec postgresql et Oracle
la source
La requête suivante est utile et simple-
Donne une sortie de 0,25.
la source
Tout ce que vous utilisez en dénomination doit être en décimal, par exemple vous
1548/100
donnera15.00
Si nous remplaçons
100
par100.0
dans notre exemple, nous obtiendrons15.48
la source
Convertissez votre numéro en un
Numeric
ouDecimal
.Remplacez votre requête par ce qui suit.
Serveur SQL
MySql:
La
Cast
fonction est un wrapper pour laConvert
fonction. Ajoutez à cela que SQL est un langage interprété et le résultat est que même si les deux fonctions produisent les mêmes résultats, il se passe un peu plus de choses en arrière-plan dans laCast
fonction. L'utilisation de laConvert
fonction est une petite économie, mais les petites économies se multiplient.la source
essaye ça :
SELECT CAST(ROUND([Amount 1]/60,2) AS DECIMAL(10,2)) as TOTAL
la source
En complément des réponses ci-dessous, lorsque vous utilisez des types de données INT ou non décimaux dans vos formules, n'oubliez pas de multiplier la valeur par 1 et le nombre de décimales que vous préférez.
c'est à dire -
TotalPackages
est unINT
et donc le dénominateurTotalContainers
, mais je veux que mon résultat ait jusqu'à 6 décimales.Donc:
la source
L'extrait suivant peut vous aider:
la source
Je trouve que la fonction STR est le moyen le plus propre d'y parvenir.
la source