1)先把字符串拆分为日期格式;
2)转换为日期格式;
3)使用日期函数Datediff 取差值。Hope help.

解决方案 »

  1.   

    请问如何拆分字符串呢如:
    select cast(left('20140918080711',8)+' '+substring('20140918080711',9,2)
    +':'+substring('20140918080711',11,2)
    +':'+substring('20140918080711',13,2) 
    as datetime)
      

  2.   

    如果格式固定为:YYYYMMMMDDHHMMSS,那么就可以通过字符串拆分来把这1个字段分成日期和时间2个字段,拆分方法:left( 字段1 ,8),right( 字段1 ,6).然后通过cast函数可以进行日期转换,最后就可以通过Datediff来获取差值
      

  3.   

    请问如何拆分字符串呢如:
    select cast(left('20140918080711',8)+' '+substring('20140918080711',9,2)
    +':'+substring('20140918080711',11,2)
    +':'+substring('20140918080711',13,2) 
    as datetime)
    太感谢了,你的回答完美的解决了我的问题
      

  4.   

    请问如何拆分字符串呢如:
    select cast(left('20140918080711',8)+' '+substring('20140918080711',9,2)
    +':'+substring('20140918080711',11,2)
    +':'+substring('20140918080711',13,2) 
    as datetime)
    还有一个问题,时间的处理,如下
    字段1                          字段2
    08:07:11             09:14:18
    ..............                       ..............
    求时间差我是这么做的
    SELECT [字段1] 
      ,[字段2]
         ,datediff(minute,cast(字段1 as datetime),cast(字段2 as datetime) ) as 时差
      FROM [表名]
    但是执行时出现了这种情况
    Arithmetic overflow error converting expression to data type datetime.,请问应该怎么做
      

  5.   

    请问如何拆分字符串呢如:
    select cast(left('20140918080711',8)+' '+substring('20140918080711',9,2)
    +':'+substring('20140918080711',11,2)
    +':'+substring('20140918080711',13,2) 
    as datetime)
    还有一个问题,时间的处理,如下
    字段1                          字段2
    08:07:11             09:14:18
    ..............                       ..............
    求时间差我是这么做的
    SELECT [字段1] 
      ,[字段2]
         ,datediff(minute,cast(字段1 as datetime),cast(字段2 as datetime) ) as 时差
      FROM [表名]
    但是执行时出现了这种情况
    Arithmetic overflow error converting expression to data type datetime.,请问应该怎么做数据转为datetime失败,请确认所有的数据都是你这种格式。