分を時間に変換し、小数点以下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 cast((630/60.0) as decimal(16,2))
Declare @number float = 35.44987665;
Select round(@number,2)
DECLARE @porcentaje FLOAT
SET @porcentaje = (CONVERT(DECIMAL,ABS(8700)) * 100) / CONVERT(DECIMAL,ABS(37020))
SELECT @porcentaje
CAST(QuantityLevel AS NUMERIC(18,2))
あなたの番号を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
関数を使うことは小さな節約ですが、小さな節約は倍増します。
以下のクエリは便利で簡単です -
declare @floatExchRate float;
set @floatExchRate=(select convert(decimal(10, 2), 0.2548712))
select @floatExchRate
0.25を出力します。
PostgresqlとOracleの両方で動作します。
SELECT ename, sal, round(((sal * .15 + comm) /12),2)
FROM emp where job = 'SALESMAN'
あなたが今までの宗派で使うものは10進数であるべきです、例えば1548/100
は15.00
を与えるでしょう
この例で100
を100.0
に置き換えると、15.48
が得られます。
select 1548/100
15.00000
select 1548/100.0
15.4800
0
以下の答えの補足として、式でINTまたは10進数以外のデータ型を使用する場合は、値に1と好みの小数桁数を掛けてください。
すなわち、 - TotalPackages
はINT
なので分母TotalContainers
ですが、結果は小数点以下6桁までにします。
したがって:
((m.TotalPackages * 1.000000) / m.TotalContainers) AS Packages,
これを試してください: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
私はSTR関数がこれを達成するための最もクリーンな方法であると思います。
SELECT STR(ceiling(123.415432875), 6, 2)