SELECT MineID,StafferID,JHBanID,BanTypeID,PlanDate,PlanStartTime,PlanEndTime,
  PlanChangeReason
FROM(
SELECT Mineid,StafferID,ISNULL(BGBanID,JHBanID) JHBanID,BanTypeID,
ISNULL(PlanDate1,PlanDate) PlanDate,
  ISNULL(PlanStartTime1,PlanStartTime) PlanStartTime ,
ISNULL(PlanEndTime1,PlanEndTime) PlanEndTime,PlanChangeReason
FROM DownPlan  
  WHERE (CONVERT(VARCHAR(100),PlanDate,23)>=CONVERT(VARCHAR(100),@QSSJ,23) and CONVERT(VARCHAR(100),PlanDate,23)<=CONVERT(VARCHAR(100),@QSSJ,23) ) OR  
(CONVERT(VARCHAR(100),PlanDate1,23)>=CONVERT(VARCHA(100),@QSSJ,23) and  
  CONVERT(VARCHAR(100),PlanDate1,23)<=CONVERT(VARCHAR(100),@QSSJ,23))
) d
WHERE CONVERT(VARCHAR(100),d.PlanDate,23)>=CONVERT(VARCHAR(100),@QSSJ,23) and  
CONVERT(VARCHAR(100),d.PlanDate,23)<=CONVERT(VARCHAR(100),@QSSJ,23)
@QSSJ varchar(19)@QSSJ 的格式 2011-07-18
测试过2011-07-18 00:00:00也不行

解决方案 »

  1.   

    以前在sqlserver里运行都有结果的
      

  2.   

    补丁问题吧,看看你的数据库打了哪个补丁,贴下版本号select @@version
    可查看版本号
      

  3.   

    CONVERT(VARCHAR(19),@QSSJ,120)  上个帖子不是说了么?
      

  4.   

    CONVERT(VARCHAR(19),d.PlanDate,120)<=@QSSJ@QSSJ 格式是楼主说的那种。  2011-07-18 00:00:00
      

  5.   

    SELECT MineID,StafferID,JHBanID,BanTypeID,PlanDate,PlanStartTime,PlanEndTime,PlanChangeReason
    FROM(
    SELECT Mineid,StafferID,ISNULL(BGBanID,JHBanID) JHBanID,BanTypeID,
    ISNULL(PlanDate1,PlanDate) PlanDate,ISNULL(PlanStartTime1,PlanStartTime) PlanStartTime ,
    ISNULL(PlanEndTime1,PlanEndTime) PlanEndTime,PlanChangeReason
    FROM DownPlan WHERE (PlanDate >= @QSSJ and PlanDate<=@QSSJ) OR 
    (PlanDate1>=@QSSJ and PlanDate1<=@QSSJ)
    ) d
    WHERE PlanDate >= @QSSJ and PlanDate<=@QSSJ这样写就有结果
      

  6.   

    Microsoft SQL Server  2000 - 8.00.2039 (Intel X86)   May  3 2005 23:18:38   Copyright (c) 1988-2003 Microsoft Corporation  Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2) 
      

  7.   

    PlanDate >= @QSSJ and PlanDate<=@QSSJ
    应该就是 PlanDate = @QSSJ