首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-08-28 
SQL 时间差问题,求大侠解决!!!select datediff(HH,飞机航班信息表1.出发时间,飞机航班信息表.到达时间

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

热点排行