代码:
CDatabase Borrow;
CString strSQL;
strSQL.Format("INSERT INTO BORROW VALUES ('%s','%s',%d,%d)",BorrowDlg.m_strBOOKID,
               BorrowDlg.m_strSTUID,BorrowDlg.m_timeBorrow,BorrowDlg.m_timeReturn);
//AfxMessageBox(strSQL);
if(Borrow.IsOpen())
    Borrow.Close();
Borrow.Open("Library");
Borrow.ExecuteSQL(strSQL);
Borrow.Close();
///////////////////////////////////
这里我用%d表示CTime类型的数据(BorrowDlg.m_timeBorrow,BorrowDlg.m_timeReturn)
但是执行时提示我数据类型不匹配,
请问用什么类型才能匹配CTime类型?我在数据库中的类型是time类型?请大家帮帮忙

解决方案 »

  1.   

    COleDateTime oleDate = COleDateTime::GetCurrentTime();_variant_t vtFld;
    vtFld.vt = VT_DATE;
    vtFld.date = oleDate;pRecordSet4->PutCollect("date", vtFld);
      

  2.   

    在insert语句中,用convert转换也行strSQL.Format("INSERT INTO BORROW VALUES ('%s','%s',%s)",BorrowDlg.m_strBOOKID,
                   BorrowDlg.m_strSTUID,convert(datetime, '2006-1-4', 120));
      

  3.   

    '2006-1-4'
    这种类型就可以了
    不要写成这样'2006-01-04'
    你可以定义成COleDateTime 类型
    COleDateTime::GetCurrentTime().Format();可以直接插入数据库中
      

  4.   

    strSQL.Format("INSERT INTO BORROW VALUES ('%s','%s','%s',%d)",BorrowDlg.m_strBOOKID,
                   BorrowDlg.m_strSTUID,"2006-1-4",BorrowDlg.m_timeReturn);
      

  5.   

    可以转换趁
    CString m_temp;
    m_temp.format("%04d-%02d-%02d %02d:%02d:%02d",...)
      

  6.   

    如果用ADO,需要在日期的字符串前后加# ,例如#2006-4-3#,不知道你的要不要加