SQL - Arrondir à 2 décimales

J'ai besoin de convertir les minutes en heures, arrondies à deux décimales, et de n'afficher que deux chiffres après la décimale. Ainsi, si j'ai des minutes de 650, alors les heures devraient être 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 que ce soit 10,50 seulement (après arrondi). Comment puis-je y parvenir ?

Solution

Ne pourriez-vous pas convertir votre résultat en numeric(x,2) ? Où "x

Commentaires (6)

Comme avec SQL Server 2012, vous pouvez utiliser la [fonction format][1] intégrée :

SELECT FORMAT(Minutes/60.0, 'N2')

(juste pour les lectures supplémentaires...)

[1] : http://msdn.microsoft.com/en-us/library/hh213505.aspx

Commentaires (4)

L'extrait suivant peut vous aider :

select SUBSTR(ENDDTTM,1, 9), extract(DAY FROM (ENDDTTM)), ENDDTTM, BEGINDTTM,  (ENDDTTM - BEGINDTTM),substr(BEGINDTTM, 1,15), substr((ENDDTTM - BEGINDTTM), 12, 8),
round((substr((ENDDTTM - BEGINDTTM), 12, 2)* 3600 + substr((ENDDTTM - BEGINDTTM), 15, 2)*60 +  substr((ENDDTTM - BEGINDTTM), 18, 2)),2) as seconds,
round((substr((ENDDTTM - BEGINDTTM), 12, 2)* 60 + substr((ENDDTTM - BEGINDTTM), 15, 2) +  substr((ENDDTTM - BEGINDTTM), 18, 2)/60 ), 2)as minutes,
round((substr((ENDDTTM - BEGINDTTM), 12, 2) + substr((ENDDTTM - BEGINDTTM), 15, 2)/60 +  substr((ENDDTTM - BEGINDTTM), 18, 2)/3600 ),2)  as hours
Commentaires (1)