sprintf(strsql,"select * from  %s where format(TIME,'yyyy-mm-dd')>=format('%s','yyyy-mm-dd') and format(TIME,'yyyy-mm-dd')<=format('%s','yyyy-mm-dd')",szTableName,strDateFrom,strDateTo);
TIME,字段为datetime属性
 mysql

解决方案 »

  1.   

    以前在XP下,是可以的,在WIN7下就不行了,同样也是这语句,ACCESS,可以
      

  2.   

    MYSQL中不是formatsprintf(strsql,"select * from  %s where TIME>='%s' and TIME<='%s'",szTableName,strDateFrom,strDateTo);
      

  3.   

    DATE_FORMAT(TIME,'%Y-%m-%d')>=DATE_format('%s','%Y-%m-%d') 
      

  4.   

    打印出来sql是否能在数据库执行
      

  5.   

    如果不是超级大工程用ADO或者mysqllib呀
    想取什么取什么  既然都用了sprintf
    我想也就可以从 命令形式变为代码形式了.而且代码的形式更注重面向对象编程,重用性和灵活性高.要不然你每次都select XXXXX  这些XXX你都用sprintf 改起来要改很多字符串...
    非要用命令形式 那就
    CString Strval;Strval.format("SELECT * FROM  %s WHERE TIME>='%s' and TIME<='%s'", 表名字,时间起,时间截止)char *strval = new char[这个长度不好控制];
    sprintf(strval,"SELECT * FROM  %s WHERE TIME>='%s' and TIME<='%s'",表名字,时间起,时间截止);如果操作多于读表的频率,或者重用性你更注重,还是建议转代码形式.
    综上所述