查询中此语句有问题:CASE WHEN TG200<>'' AND TD013<>'' THEN CONVERT(CHAR(10),DATEDIFF(DAY,TG200,TD013)) ELSE '途中' END AS ZHTSTG200,TD013是char类型查询后报错:从字符串转换为 datetime 时发生语法错误看不出  到底是哪里有错,请高手指点一下,谢谢!

解决方案 »

  1.   

    SELECT  CASE WHEN TG200 <> ''
                      AND TD013 <> ''
                 THEN CONVERT(CHAR(10), DATEDIFF(DAY, CONVERT(DATETIME,TG200), CONVERT(DATETIME,TD013)))  --TG200和TD013需要转换成日期类型才可以使用datediff
                 ELSE '途中'
            END AS ZHTS
    注意数据类型的转换。
      

  2.   

    你确定你表结构里面字段TG200,TD013是datetime类型?
    CASE WHEN TG200<>''  日期类型里面还能填 ‘’  ?
      

  3.   

    TG200,TD013是char类型 晕。。没看到。sql语句没问题。是你数据有问题,
    TG200,TD013这两个字段里面有内容不是日期格式的