用CRecordset中的GetFieldValue获取MSSQL中的时间字段会多出几个!

liaosh00 2008-01-07 10:24:46

用CRecordset中的GetFieldValue获取MSSQL中的时间字段会多出几个!

如2008-1-07 10:23:25
实际取出来是2008-1-07 10:23:25.012

郁闷中........
...全文
62 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxshzf 2008-09-12
  • 打赏
  • 举报
回复
你可以先用select convert(char(10),yourDateFieldName,20) from yourtable 试试
liaosh00 2008-01-10
  • 打赏
  • 举报
回复
CDatabase conn;
CString strConnect = "Driver=SQL Server;Server=192.168.0.2;Database=testmssql;Uid=sa;Pwd=123456";

//打开数据库
if(!conn.OpenEx(_T(strConnect)
, CDatabase::noOdbcDialog))
{
return;
}


TRY {

CRecordset rs(&conn);
CString strTemp,strSQL = "select * from [MS_SQL]";
if (rs.Open(CRecordset::dynamic, strSQL))
{

rs.GetFieldValue("AddTime", strTemp);


rs.Close();
}
}
CATCH (CException, e)
{
e->ReportError();
}
END_CATCH


conn.Close();
liaosh00 2008-01-10
  • 打赏
  • 举报
回复
呵呵,看来也只能这样了
Thank you!!
内存泄漏 2008-01-10
  • 打赏
  • 举报
回复
把查询代码修改如下试试:

if(rs.Open(CRecordset::dynamic,strSQL))
{
CDBVariant varValue;
rs.GetFieldValue("AddTime",varValue);
char buf[223];
memset(buf,0,sizeof(buf));
sprintf(buf,"%d-%d-%d %d:%d:%d", varValue.m_pdate->year,
varValue.m_pdate->month, varValue.m_pdate->day,
varValue.m_pdate->hour, varValue.m_pdate->minute,
varValue.m_pdate->second);
AfxMessageBox(buf);

rs.Close();
}


内存泄漏 2008-01-08
  • 打赏
  • 举报
回复
怎么取的,代码发出来..
liaosh00 2008-01-08
  • 打赏
  • 举报
回复
自己顶上去`~
shakaqrj 2008-01-07
  • 打赏
  • 举报
回复
...

4,011

社区成员

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

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