……
COleDateTime SendTime = COleDateTime::GetCurrentTime();
sql.Empty();
sql.Format("UPDATE table SET Send_Time = %.9lf
WHERE ID = 1",SendTime.m_dt);
m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
以上语句能正确执行,但写入sql server中的时间会比系统当前时间 多两天 ,比如9-18显示为9-20,郁闷啊,谁帮帮我
COleDateTime SendTime = COleDateTime::GetCurrentTime();
sql.Empty();
sql.Format("UPDATE table SET Send_Time = %.9lf
WHERE ID = 1",SendTime.m_dt);
m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
以上语句能正确执行,但写入sql server中的时间会比系统当前时间 多两天 ,比如9-18显示为9-20,郁闷啊,谁帮帮我
COleDateTime Date2,Date4;
CString Date3;
// Date2.GetCurrentTime();
Date1 =(COleVariant)Date2.GetCurrentTime();
Date4=Date1.date;
Date3=Date4.Format("%Y-%m-%d %H:%M:%S");
::AfxMessageBox(Date3);
COleDateTime Date2,Date4;
CString Date3;
// Date2.GetCurrentTime();
Date1 =(COleVariant)Date2.GetCurrentTime();
Date4=Date1.date;
Date3=Date4.Format("%Y-%m-%d %H:%M:%S");
::AfxMessageBox(Date3);
SendTime.m_dt 为date 类型
而date类型值为0时表示为30 December 1899, midnight
为2.00时表示为1 January 1900, midnight
在sql server 中在datetime类型中写入0值时,日期显示为1900-1-1正好差两天,这就是VC与sql server中日期类型的数值表示不同造成的。
可以这样:
sql.Format("UPDATE table SET Send_Time = '%s'
WHERE ID = 1",SendTime.Format("%Y-%m-%d %H:%M:%S"));
m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);