VC中如何判断从SQLSERVER中读取的datetime类型的值为空?

时间:2022-03-01 04:51:26
我用如下语句,总是判断不正确:
CString m_str;
m_str="";
Bp_strSQL.Format(_T("select * from table where mytime='%s'"),m_str);

4 个解决方案

#1


datatime类型不可能为“”。如果你没有输入,且字段允许空时,你的SQL语句应为select * from table where mytime is null.

#2


ADO Recordset:

if(pAdoRst->Fields->Item["mytime"]->ActualSize() == 0)
   AfxMessageBox("time is NULL!");

#3


_RecordsetPtr pRs;
pRs.CreateInstance(__uuidof(Recordset));
pRs->Open(.....);
....
_variant_t vValue;
vValue=pRs->GetCollect("MyTime");
if(vValue.vt==VT_NULL)
{......
}
else
{
   .....
}

#4


同意sfcyyc的 方 法 ; 
如 果 不 采 用 COM 方 法 , 也 是 判 断 是 否 是 (vValue.vt = VT_NULL)

#1


datatime类型不可能为“”。如果你没有输入,且字段允许空时,你的SQL语句应为select * from table where mytime is null.

#2


ADO Recordset:

if(pAdoRst->Fields->Item["mytime"]->ActualSize() == 0)
   AfxMessageBox("time is NULL!");

#3


_RecordsetPtr pRs;
pRs.CreateInstance(__uuidof(Recordset));
pRs->Open(.....);
....
_variant_t vValue;
vValue=pRs->GetCollect("MyTime");
if(vValue.vt==VT_NULL)
{......
}
else
{
   .....
}

#4


同意sfcyyc的 方 法 ; 
如 果 不 采 用 COM 方 法 , 也 是 判 断 是 否 是 (vValue.vt = VT_NULL)