如题,是日期,不包括时间。
不要是这样的:select * from T_BuyDetails where DateTime between '2011-5-20' and '2011-5-28'  这查找出来结果是不符合的。 DateTime 字段里的日期都是带 时间(分秒)这些小尾巴的

解决方案 »

  1.   

    select * from T_BuyDetails where DateTime between '2011-5-20 00:00:00' and '2011-5-28 23:59:59.999' 
      

  2.   

    select * from T_BuyDetails where DateTime between '2011-5-20 00:00:00' and '2011-5-28 23:59:59'
      

  3.   

    select * from T_BuyDetails where DateTime between '2011-5-20 00:00:00.000' and '2011-5-28 23:59:59.999'
      

  4.   

    select * 
    from 
    T_BuyDetails 
    where DateTime between '2011-5-20 00:00:00' and '2011-5-28 23:59:59.999' 
      

  5.   

    select * from T_BuyDetails where DateTime>='2011-5-20' and DateTime<='2011-5-29' 
      

  6.   

    錯誤了,試試這樣
    select * from T_BuyDetails where DateTime>='2011-5-20' and DateTime<'2011-5-29' 
      

  7.   


    select * from T_BuyDetails 
    where Convert(Varchar(10),DateTime,120) between '2011-5-20' and '2011-5-28' 
      

  8.   

    如果不希望在输入条件时输入时分秒,建议用 col>='起始日期' and col<'截止日期+1天' 的方式来查询,这样可以利用到时间字段的索引,如果用convert等转换,虽然同样能达到目的,但查询效率就比较低了。