我想取数据库中的时间,就是FIELD的值,SQLSERVER数据库(datetime)型
用ADO连接,取别的类型没有问题,
代码如下:
varName = _variant_t("sCallerID");
var = m_pRecordset->GetCollect(varName);
strCallerID = (LPCTSTR)_bstr_t(var);
strCallerID.TrimRight();
varName = _variant_t("sLinkChannel");
var = m_pRecordset->GetCollect(varName);
strLinkChannel = (LPCTSTR)_bstr_t(var);
var = m_pRecordset->Fields->GetItem(LPCTSTR("CallTime"))->Value;
//////*********************************
switch(var.vt)
{
case VT_DATE:
{
COleDateTime dt(var);
if(strTime.IsEmpty())
strTime = _T("%Y-%m-%d %H:%M:%S");
CString str = dt.Format(strTime);
/* time = COleDateTime(_variant_t(var));
strTime.Format("%02d-%02d-%02d %02d:%02d:%02d",time.GetYear(),time.GetMonth(),time.GetDay(),time.GetHour(),time.GetMinute(),time.GetSecond());*/
}
break;
case VT_EMPTY:
case VT_NULL:
time.SetStatus(COleDateTime::null);
strTime = "NULL";
break;
default:
return ;
}
}
用ADO连接,取别的类型没有问题,
代码如下:
varName = _variant_t("sCallerID");
var = m_pRecordset->GetCollect(varName);
strCallerID = (LPCTSTR)_bstr_t(var);
strCallerID.TrimRight();
varName = _variant_t("sLinkChannel");
var = m_pRecordset->GetCollect(varName);
strLinkChannel = (LPCTSTR)_bstr_t(var);
var = m_pRecordset->Fields->GetItem(LPCTSTR("CallTime"))->Value;
//////*********************************
switch(var.vt)
{
case VT_DATE:
{
COleDateTime dt(var);
if(strTime.IsEmpty())
strTime = _T("%Y-%m-%d %H:%M:%S");
CString str = dt.Format(strTime);
/* time = COleDateTime(_variant_t(var));
strTime.Format("%02d-%02d-%02d %02d:%02d:%02d",time.GetYear(),time.GetMonth(),time.GetDay(),time.GetHour(),time.GetMinute(),time.GetSecond());*/
}
break;
case VT_EMPTY:
case VT_NULL:
time.SetStatus(COleDateTime::null);
strTime = "NULL";
break;
default:
return ;
}
}
其实代码就是这个,我想取数据库FIELD的时间,可总不能成功,WHY?
switch(var.vt)
{
case VT_DATE:
{
COleDateTime dt(var);
if(strTime.IsEmpty())
strTime = _T("%Y-%m-%d %H:%M:%S");
CString str = dt.Format(strTime);
/* time = COleDateTime(_variant_t(var));
strTime.Format("%02d-%02d-%02d %02d:%02d:%02d",time.GetYear(),time.GetMonth(),time.GetDay(),time.GetHour(),time.GetMinute(),time.GetSecond());*/
}
break;
case VT_EMPTY:
case VT_NULL:
time.SetStatus(COleDateTime::null);
strTime = "NULL";
break;
default:
return ;
}
}
COleDateTime time1=(COleDateTime)(_variant_t)birthday;
time1.Format("%Y-%M-%D");
str.Format("%d-%d-%d",time1.GetYear(),time1.GetMonth(),time1.GetDay());我这么做行(没判断VT)
COleDateTime time = birthday;
CString str = time.Format("%Y-%m-%d");想简单一点,可以这样写!试试看,祝你成功!
SQLSERVER数据库(datetime)