分を時間に変換し、小数点第2位を四捨五入する必要があります。小数点以下2桁まで表示する必要もあります。だから私は650分の分がある場合、時間は10.83になるはずです
ここに私がこれまで持っているものがあります:
Select round(Minutes/60.0,2) from ....
しかし、この場合、私の分がたとえば630の場合、時間は10.5000000です。しかし、私はそれを(丸めた後)10.50のみとして欲しいです どうすればこれを達成できますか?
分を時間に変換し、小数点第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
SELECT ROUND(630/60.0, 2);
くれ10.50
ます
cast(630/60.0 as numeric(36,2))
is enougth10,50
1,757.47
Declare @number float = 35.44987665;
Select round(@number,2)
CAST(QuantityLevel AS NUMERIC(18,2))
DECLARE @porcentaje FLOAT
SET @porcentaje = (CONVERT(DECIMAL,ABS(8700)) * 100) / CONVERT(DECIMAL,ABS(37020))
SELECT @porcentaje
次のクエリは便利でシンプルです-
declare @floatExchRate float;
set @floatExchRate=(select convert(decimal(10, 2), 0.2548712))
select @floatExchRate
出力を0.25にします。
番号をNumeric
またはに変換しますDecimal
。
クエリを次のように置き換えます。
SQLサーバー
Select Convert(Numeric(38, 2), Minutes/60.0) from ....
MySql:
Select Convert(Minutes/60.0, Decimal(65, 2)) from ....
Cast
機能はのラッパーですConvert
機能。SQLがインタープリター言語であることと組み合わせると、その結果、2つの関数が同じ結果を生成しても、関数の裏側で少し多くの処理が行われCast
ます。Convert
関数の使用はわずかな節約ですが、わずかな節約が増大します。
これを試して : SELECT CAST(ROUND([Amount 1]/60,2) AS DECIMAL(10,2)) as TOTAL
次のスニペットが役立つ場合があります。
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