急问,在ADO编程中,_variant_t类型转化到CTime类型?

openesource 2003-09-03 05:08:30
如题
...全文
93 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluebohe 2003-10-10
  • 打赏
  • 举报
回复
还有一种方法
_variant_t var=m_pRecordSet->GetCollect("ZHXGRQ");
time_t time2=0;
if(var.vt!=VT_NULL)
{
COleDateTime time1;
SYSTEMTIME systime;
time1=(COleDateTime)var;
VariantTimeToSystemTime(time1, &systime);

CTime tm(systime);
time2= tm.GetTime();
}
lansefeng 2003-09-08
  • 打赏
  • 举报
回复
up
openesource 2003-09-05
  • 打赏
  • 举报
回复
多谢大家!!!
JOSENHUANG 2003-09-04
  • 打赏
  • 举报
回复
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));

查询同样转换成字符串后,读出结果:
CString strDate;
strDate = ((COleDateTime)(pRs->GetCollect("t_date"))).Format(_T("%Y-%m-%d %H:%M:%S"));
bluebohe 2003-09-04
  • 打赏
  • 举报
回复
如果你的数据库表的字段是datetime类型的话
_variant_t var=m_pRecordSet->GetCollect("ZHXGRQ");
time_t lTime=0;
if(var.vt!=NULL)
{
CTime tempTime(((COleDateTime)var).GetYear(),
((COleDateTime)var).GetMonth(),
((COleDateTime)var).GetDay(),
((COleDateTime)var).GetHour(),
((COleDateTime)var).GetMinute(),
((COleDateTime)var).GetSecond());
tempTime即可
}
GreenHeart 2003-09-04
  • 打赏
  • 举报
回复
既然用,_variant_t来存储数据,程序里至少就已经写了varchar2和_variant_t相互转换的函数了。用这种方法的,一般读出数据来之后就转换为varchar2了,然后调用ParseDateTime函数转换成coledatetime,再换成ctime。
至于直接由_variant_t到ctime,我了解不多,没找到。

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧