datediff(minute,a.发车时刻,b.到站时刻),返回社么?高手请进
查询程序:
isnull(convert(char(5),a.发车时刻,108),'终点') AS 发车时刻 ,
isnull(convert(char(5),a.到站时刻,108),'起点') AS 到站时刻 ,
case when datediff(minute,a.发车时刻,b.到站时刻)>=0
then cast(24*(b.天数-a.天数)+datediff(hour,a.发车时刻,b.到站时刻) as varchar(2))+'.'+cast(datediff(minute,a.发车时刻,b.到站时刻) as varchar(4))+''''
else cast(24*(b.天数-a.天数)+datediff(hour,a.发车时刻,b.到站时刻)-1 as varchar(2))+'.'+cast(datediff(minute,a.发车时刻,b.到站时刻) as varchar(4))+''''
end as 旅时,
里程=b.公里数-a.公里数
from (select * from message2 where 经由站='德阳') as a,
(select * from message2 where 经由站='广元') as b,
(select * from checi) as c
where a.车次ID=b.车次ID and a.车次ID=c.车次ID and a.站次<b.站次
得到结果:
车次 到站时刻 发车时刻 旅时 里程
k284/281次(成都-->上海)空调快 16:27 16:26 5.273' 258
1354/1351次(成都-->上海)普快 15:48 15:43 5.267' 258
k292/289次(成都-->上海)空调快 20:03 19:59 3.*' 258
K118(成都-->北京西)新空快速 23:00 22:58 3.*' 253
旅时无法正常显示,请教各位大哥!
1、小时正常,分钟怎么会有3位,我还试过还可以更多,不明白
2、我想可能是遇到负值datediff(minute,a.发车时刻,b.到站时刻)会返回补数之类的,请高手指点
问题点数:10、回复次数:2Top
1 楼happydreamer(www.sz.js.cn,www.gyxk.com)回复于 2003-05-01 11:06:23 得分 8
发车时刻是datetime字段
计算相隔小时只要datediff(hh,a.发车时刻,b.到站时刻)就可以了
算分钟应该这样的
select datediff(minute,cast( convert (char(14),b.到站时刻,120)+'00' as datetime),b.到站时刻)
Top




