0
select (cast(datediff(minute,'1900-01-01 07:03:00.000' ,'1900-01-01 10:35:00.000')

as decimal(18,4))/60)

小数点以下4桁に設定されていても、3.5333ではなく3.5333333が返されます

3.5333(小数点以下第4位)を返すのを手伝ってください

http://sqlfiddle.com/#!3/1fa93/4119/0

4

2 に答える 2

4

/60 をキャストに入れ、それを 60.0 に変更して小数点を持たせます。

select (cast(datediff(minute,'1900-01-01 07:03:00.000' ,'1900-01-01 10:35:00.000')/60.0

as decimal(18,4)))
于 2012-12-07T14:04:57.633 に答える
1

キャストする前に除算を行う必要があります。

select 
   cast(datediff(minute, '1900-01-01 07:03:00.000', '1900-01-01 10:35:00.000') / 60.0 
        as decimal(18,4))

次に、次のようになります。

3.5333

キャストしてから60による除算decimal(18,4)行うと、フォーマットが「無効」になります-SQL Serverは、その除算のすべての数値精度を60で再度表示します...

于 2012-12-07T14:05:58.513 に答える