字段1和字段2都是字符串类型,现在要求时间差如下
字段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.,请问应该怎么做

解决方案 »

  1.   


    SELECT DATEDIFF(minute,cast('08:07:11' as datetime),cast('09:14:18' as datetime)) AS 时差可以执行过去,是这样算时差的!LZ看下,数据里面是否有特殊字符, 比如中文标点,可以用replate替换下!
      

  2.   

    我运行你的代码没有问题
    问题是你建表时的字段值类型为date,而这里你要把它转换成datetime类型,这样不行呀
    你把你的字段值类型改为datetime试试
    或者用下面的语句试试
    select DATEDIFF(MINUTE,字段1,字段2)
    from [表名]
      

  3.   

    我这儿没有环境,但是看你给出的
    字段1                          字段2
    08:07:11             09:14:18如果一楼可以执行,看起来你的冒号应该是中文输入法输入的冒号,可以replace下