我先
declare @aa varchar(20),@bb varchar(20)
set @aa = '13:30:00'
set @bb = '11:00:00'select datediff(mi,@bb,@aa)/60结果
-----------
2(1 row(s) affected)并不是2.5
declare @aa varchar(20),@bb varchar(20)
set @aa = '13:30:00'
set @bb = '11:00:00'select datediff(mi,@bb,@aa)/60结果
-----------
2(1 row(s) affected)并不是2.5
declare @aa varchar(20),@bb varchar(20)
set @aa = '13:30:00'
set @bb = '11:00:00'select datediff(mi,@bb,@aa)/60.O
这样就可以了 因为你所有的运算的数据类型都是INT,所以得出的结构也是INT
把60改为60.0,就可以得到小数。
set @aa = '13:30:00'
set @bb = '11:00:00'
select datediff(mi,@bb,@aa)/60.O
set @aa = '13:30:00'
set @bb = '11:00:00'
select datediff(ss,@bb,@aa)/3600.0
但是,结果
-------------------
2.500000(1 row(s) affected)我 round(select datediff(mi,@bb,@aa)/60.O,n)是没有效果的,可能我用错了
set @aa = '13:30:00'
set @bb = '11:00:00'
Select convert(decimal(8,4),datediff(n,@bb,@aa))/60
最新版本
declare @aa varchar(20),@bb varchar(20)
set @aa = '13:30:00'
set @bb = '11:00:00'
select STR(datediff(mi, @bb,@aa) / 60.0, 3, 2)
谢谢各位,每人都有份
结贴了!
set @aa = '13:30:00'
set @bb = '11:00:00'
select convert(decimal(8,1),datediff(n,@bb,@aa)/60.0)
DECKARE @D NUMERIC(6,1)
set @aa = '13:30:00'
set @bb = '11:00:00'select @D=datediff(mi,@bb,@aa)/60.O
SELECT @D这样最简单
set @aa = '13:30:00'
set @bb = '11:00:00'
select convert(decimal(8,1),datediff(n,@bb,@aa)/60.0) 這個也行