这是在Delphi中写的SQL语句,不出错,但没有结果。用的是ADOQuery控件,库中绝对有相应数据
SELECT BookNO AS 本号, BDNO AS 报单号, BusNO AS 车次, BPNO AS 车号, 
      FCTime AS 发车时间, BusCorp AS 单位, ManNum AS 人数, KPMoney AS 客票金额, 
      GoodsMoney AS 货物金额, BDType AS 类型, SFStation AS 始发站, 
      PrintTime AS 打印时间, PrintNO AS 打印编号, Goods AS 件数, RGL AS 人公里, 
      QN AS 区内, CheckWindow AS 检票口, CheckMan AS 检票员
FROM JS_BDXX
WHERE (CONVERT(varchar(10), FCTime, 101) >= CONVERT(varchar(10), 
      '2004-8-28 14:19:36', 101)) AND (CONVERT(varchar(10), FCTime, 101) 
      <= CONVERT(varchar(10), '2004-10-28 14:19:36', 101))
ORDER BY BookNO, BDNO
这是我在文本控件中导出的SQL结果。
----------------------------------------------------------------------------
这是在SQL中写的过程,测试可以得到数据
CREATE PROCEDURE PrSJCX(
@StartTime datetime,
@EndTime datetime)
--with ENCRYPTION
AS
SELECT BDNO AS 报单号, BusCorp AS 单位, BusNO AS 车次, BPNO AS 车号, 
      SFStation AS 始发站, FCTime AS 发车时间, PrintTime AS 打印时间, 
      PrintNO AS 打印编号, ManNum AS 人数, KPMoney AS 客票金额, Goods AS 件数, 
      GoodsMoney AS 货物金额, RGL AS 人公里, QN AS 区内, CheckWindow AS 检票口, 
      CheckMan AS 检票员, BookNO AS 本号, BDType AS 类型
FROM JS_BDXX
where (Convert(varchar(10),FCTime,101)>=Convert(varchar(10),@StartTime,101)) and (Convert(varchar(10),FCTime,101)<= Convert(varchar(10),@EndTime,101))
ORDER BY BookNO, FCTime
GOexec prsjcx  '2004-8-28 14:19:36','2004-10-28 14:19:36',执行后得到数据,为什么不一样呢。谢谢各位帮忙看看,。而我不想在SQL中写进程,想直接用ADOQuery得到结果。

解决方案 »

  1.   

    是字符串比较的问题 convert(varchar(10),'2004-8-28',101) 是大于字符串convert(varchar(10),'2004-10-28',101),仅是我的看法,还在想这个问题
      

  2.   

    CREATE PROCEDURE PrSJCX(
    @StartTime datetime,
    @EndTime datetime)
    --with ENCRYPTION
    AS
    SELECT BDNO AS 报单号, BusCorp AS 单位, BusNO AS 车次, BPNO AS 车号, 
          SFStation AS 始发站, FCTime AS 发车时间, PrintTime AS 打印时间, 
          PrintNO AS 打印编号, ManNum AS 人数, KPMoney AS 客票金额, Goods AS 件数, 
          GoodsMoney AS 货物金额, RGL AS 人公里, QN AS 区内, CheckWindow AS 检票口, 
          CheckMan AS 检票员, BookNO AS 本号, BDType AS 类型
    FROM JS_BDXX
    where FCTime>=@StartTime and FCTime<= @EndTime
    ORDER BY BookNO, FCTime
    GO
      

  3.   

    exec prsjcx  cast('2004-8-28 14:19:36' as datetime),cast('2004-10-28 14:19:36' as datetime)
      

  4.   

    select * from w_good_receipt
    where (convert( varchar(10), createtime,112)>=convert(varchar(10),'2004-08-01',112)) 
    and (convert(varchar(10), createtime,112)<=convert(varchar(10),'2004-09-11',112))
    哎,终于可以了。结果正确无误
      

  5.   

    select * from w_good_receipt
    where (cast(createtime as datetime)>=cast('2004-08-01' as datetime)) 
    and (cast(createtime as datetime)<=cast('2004-09-11' as datetime)) 
    这个也可以的