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 时间差;