sql.Format(" Select * from MEMO_INFO_TAB "
" where DATEPART(wk,happen_date) = DATEPART(wk,'%s' and DATEPART(yy,happen_date) = DATEPART(yy,'%s')",strCurDate,strCurDate);
//GetWeekData(sql); CRecordset rs(m_pWeek);
rs.Open(CRecordset::dynaset,sql);strCurDate 为当前时间      happen_date 为数据库中的时间。当执行Open的时候,sql语句出错。
1,但是在SQLserver 查询分析器中该SQL语句可以顺利执行,得到与当前时间为同一周的所有记录。
语句如下:(select * from memo_info_tab where DATEPART(wk,happen_date ) = DATEPART(wk, GETDATE()) and
 DATEPART(yy, happen_date) = DATEPART(yy, GETDATE()))
2,在程序中应该怎样改写这个SQL 语句啊?
请大虾指教啊?

解决方案 »

  1.   

    传变量的地方 要用双引号 '%s' => "%s"
      

  2.   

    用双引号是错的,要用单引号。关键是在server里面可以执行。在C++写的就不对了。可能是函数有问题,例如:datepart 等
      

  3.   

    Open(CRecordset::forwardOnly, szSql,CRecordset::readOnly)
    试试这个
      

  4.   

    传变量的地方 要用双引号 '%s' => "%s"
      

  5.   

    先在log里打印出要执行的sql语句,然后直接放在分析器里看能否执行