比如我想查询2010-12-10 11:12:15到2010-12-18 15:11:52的记录 sql语句应该怎么写,数据库中的时间类型是 date;
我这么写的 但是会出错 
Cstring strSQL;
strSQL.Format("select * from SALES where M_TIME >='%s' and _TIME <='%s'",startime,overtime);
请各位有经验的高手指点!!!谢谢了

解决方案 »

  1.   

    你要保证你的参数startime,overtime也是date类型的,才可以比较的,如果overtime是X:X:X的话,就要转成date类型,然后再Format...
      

  2.   

    starttime和overtime是Ctime类型的 怎么转换成date类型的啊?还有 转换成date类型后format里面的
    M_TIME >='%s' and _TIME <='%s'可以用'%s'表示吗?
      

  3.   

    数据库中的data类型 ,就是 "2010-11-11 12:12:12" 这种格式 的字符串就行了。
    所以,你的starttime转化为"12:12:12"是不行的。你可以用CDateTime的Format什么的,看看如果转化为这种格式的字符串:"2010-11-11 12:12:12" 
      

  4.   

    你能说的明白点吗?如果您做过的话请给我一个正确的sql语句,我不会写。谢谢了!!
      

  5.   

    strSQL.Format("select * from SALES where M_TIME >='%s' and _TIME <='%s'",startime,overtime);看是不是写错了?
      

  6.   

    oracle中时间类型比较,最方便的就是用date类型作比较,所以如果你是字符串类型,要先转换为Date类型。另外用字符串类型作比较的话,不一定会完全正确噢!