读书人

SQL 时间差有关问题求大侠解决!

发布时间: 2012-08-28 12:37:01 作者: rapoo

SQL 时间差问题,求大侠解决!!!
select datediff(HH,'飞机航班信息表1.出发时间','飞机航班信息表.到达时间 ') as 时间差 ,飞机航班信息表.目的地 as 中转站 from 飞机航班信息表 ,飞机航班信息表1
where 飞机航班信息表.出发地 ='海口' AND 飞机航班信息表.目的地= 飞机航班信息表1.出发地 AND 飞机航班信息表1.目的地 ='拉萨' order by 时间差;

飞机航班信息和飞机航班信息表1内容相同,相当于一个换乘查询。

结果提示:消息 241,级别 16,状态 1,第 1 行从字符串转换日期和/或时间时,转换失败。

这该怎么解决?

还有一点,假设中转站为北京,海口到达北京的时间是23:55:00,从北京到拉萨的出发时间为第二天01:20:00,时间差为负,该如何解决。

呵呵,也不知道上面的SQL 语句是否正确,还望高手不吝赐教!



[解决办法]
加个abs取绝对值就可以了

SQL code
select abs(datediff(HH,飞机航班信息表1.出发时间,飞机航班信息表.到达时间)) as 时间差 ,飞机航班信息表.目的地 as 中转站 from 飞机航班信息表 ,飞机航班信息表1  where 飞机航班信息表.出发地 ='海口'       AND 飞机航班信息表.目的地= 飞机航班信息表1.出发地       AND 飞机航班信息表1.目的地 ='拉萨' order by 时间差; 

读书人网 >SQL Server

热点推荐