255

分を時間に変換し、小数点以下 2 桁に丸める必要があります。また、小数点以下 2 桁までしか表示する必要がありません。したがって、分が 650 の場合、時間は 10.83 になります。

これが私がこれまでに持っているものです:

Select round(Minutes/60.0,2) from ....

しかし、この場合、たとえば私の分が 630 なら、時間は 10.5000000 です。しかし、私はそれを10.50のみにしたい(丸めた後)。どうすればこれを達成できますか?

4

15 に答える 15

425

結果を としてキャストできます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
于 2012-04-30T07:51:00.267 に答える
89

SQL Server 2012では、組み込みのformat関数を使用できます。

SELECT FORMAT(Minutes/60.0, 'N2')
于 2012-04-30T07:55:49.937 に答える
27

以下を使用できます。

select cast((630/60.0) as decimal(16,2))

SQL Server で

于 2014-08-23T12:15:37.470 に答える
12
Declare @number float = 35.44987665;
Select round(@number,2) 
于 2016-05-04T08:46:57.743 に答える
4
DECLARE @porcentaje FLOAT

SET @porcentaje = (CONVERT(DECIMAL,ABS(8700)) * 100) / CONVERT(DECIMAL,ABS(37020))

SELECT @porcentaje
于 2016-06-30T18:33:29.767 に答える
4

次のクエリは便利で簡単です-

declare @floatExchRate float;
set @floatExchRate=(select convert(decimal(10, 2), 0.2548712))
select  @floatExchRate

出力は 0.25 になります。

于 2015-06-30T08:48:00.013 に答える
3

これは、PostgreSQLと Oracleの両方で機能します。

SELECT ename, sal, round(((sal * .15 + comm) /12),2)
FROM emp where job = 'SALESMAN'
于 2013-12-13T16:55:49.350 に答える
1

次のスニペットが役立つ場合があります。

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
于 2012-10-06T17:51:41.823 に答える