C# 中 针对Access 进行时间段查询  
//sqlCondition 条件 ,S_zpsj:开始时间;E_zpsj:结束时间
 sqlCondition += " and (zpsj between #" + S_zpsj + "# and #" + E_zpsj + "#)"; 
若选择2008-07-02 到 2008-07-02 将没有任何数据,如何格式化可将其查询得到

解决方案 »

  1.   

    between 实际是> <,不含等于的
      

  2.   

    zpsj >= '2008-7-2' and zpsj <='2008-7-2'
      

  3.   

    and (zpsj between #" + S_zpsj + "# and #" + E_zpsj + "#)"; 
    是不对的,如果你里面的时间是:2008-7-2 1:1:1你就取不到,因为这个已经超过了2008-7-2了,所以你要取所有7-2的,1.你可以between取2008-7-2 0:0:0 至2008-7-2 24:59:59之间的
    2. 也可以把zpsj 转成日期再取
      

  4.   

    ACCESS
    数据: 
      aa                 bb 
    2008-7-2 12:12:12 aa 
    2008-7-3 12:12:12 bb 
    语句: 
    ELECT * from 表1 where aa>=#2008-7-2 12:12:12# and aa <=#2008-7-2 14:12:12# 
    结果: 
    aa bb 
    2008-7-2 12:12:12 aa
      

  5.   

    sqlCondition += " and (zpsj between #" + S_zpsj.ToShortDateString() +" 00:00:00 "+ "# and #" + E_zpsj.ToShortDateString()+" 23:59:59" + "#) or zpsj=#" + S_zpsj + "# or zpsj=#" + E_zpsj + "#"; 
    //可以了
    谢谢各位