我在数据库里定义一个字段的类型为datetime,在我的前端程序(使用VC)里我使用date time picker控件style为short date,但是在我插入数据里后后面确加上了时间
请问我该怎样才能使数据库里的datetime类型字段只插入日期不加入时间?在打开记录集的时候,我需要使用一个datetime类型的字段作为条件:
tmp.Format("SELECT tqdate,areacode FROM t_tq WHERE tqdate=%",tDate);
其中tDate为COleDateTime类型tqdate字段是datetime类型,请问我该如何写上面的连接字符串?
拜谢!

解决方案 »

  1.   

    你需要这样一个串:
    "SELECT tqdate,areacode FROM t_tq WHERE tqdate=convert(datetime,'2003-09-01 00:00:00',2)"
      

  2.   

    类似下面的代码,
    CString DateTime;
    CTime   t = CTime::GetCurrentTime();
    DateTime  = t.Format(_T("%Y-%m-%d %H:%M:%S"));
    写入数据库:
    tpRs->PutCollect(_variant_t("T_DATE"),_variant_t((LPCTSTR)DateTime));
    CDateTimeCtrl * pCtrl = (CDateTimeCtrl*) GetDlgItem(IDC_START_DATE);
        ASSERT(pCtrl != NULL);
    pCtrl->GetTime(&startdate);
    strStartDate.Format("%d-%d-%d",startdate.wYear,startdate.wMonth,startdate.wDay);
    查询同样转换成字符串后,读出结果:
    CString strDate;
    strDate = ((COleDateTime)(pRs->GetCollect("t_date"))).Format(_T("%Y-%m-%d %H:%M:%S"));