我在表中定义了一个datetime列,用来存放时间,在VC程序中我是采用CTime::GetCurrentTime()来得到时间的,但是在将该时间值赋给记录集中的时间列时总是出错。后来查了一下资料,才知道datetime为8字节,表示的时间范围比CTime大得多。如果要存入或取出时间,该怎么做?

解决方案 »

  1.   

    转换成COleDateTime类型进行存储
      

  2.   

    CTime tmp_time==CTime::GetCurrentTime();COleDateTime convert_time; 
    convert_time.SetDateTime(tmp_time.GetYear(),tmp_time.GetMonth(),tmp_time.GetDay(),
    tmp_time.GetHour(),tmp_time.GetMinute(),tmp_time.GetSecond());
    m_pRecordset->PutCollect(tmp_field,(_variant_t)convert_time);
      

  3.   

    CTime tmp_time=CTime::GetCurrentTime();COleDateTime convert_time; 
    convert_time.SetDateTime(tmp_time.GetYear(),tmp_time.GetMonth(),tmp_time.GetDay(),
    tmp_time.GetHour(),tmp_time.GetMinute(),tmp_time.GetSecond());
    m_pRecordset->PutCollect(tmp_field,(_variant_t)convert_time);
      

  4.   

    如果是用CRecordset中的AddNew()方法的话,就直接赋值行了。如果是SQL语句的话,把数据库中的datetime类型当成字符串类型就行了。至于时间比较,就用楼上所说的GetHour等函数吧。