Трябва да преобразувам минути в часове, закръглени до 2 знака след десетичната запетая.Също така трябва да показвам само до 2 числа след десетичната запетая. Така че, ако минутите са 650, то часовете трябва да са 10,83
Ето какво имам до момента:
Select round(Minutes/60.0,2) from ....
Но в този случай, ако минутите ми са, да речем,630 - часовете са 10.5000000. Но аз искам да е само 10,50 (след закръгляне). Как да постигна това?
Не бихте ли могли да представите резултата си като numeric(x,2)
? Където x <= 38
select
round(630/60.0,2),
cast(round(630/60.0,2) as numeric(36,2))
Връща
10.500000 10.50
Както и в SQL Server 2012, можете да използвате вградената функция format function:
SELECT FORMAT(Minutes/60.0, 'N2')
(само за допълнително четене...)
Следният фрагмент може да ви помогне:
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