使用MONTH CALENDAR控件时总是得不到正确的日期。 原因是该控件类提供的函数本身就有问题。GetCurSel()中几个变量没有被清空,导致数据总是向后延迟了很多。 以下是处理代码: SYSTEMTIME st; m_calendar.GetCurSel( & st); st.wHour = st.wMinute = st.wSecond = st.wMilliseconds = 0 ; CTime refDateTime(st); ADOConn m_AdoConn; m_AdoConn.OnInitADOConn(); _bstr_t vSQL; vSQL = " SELECT CHECKDATE,SUM(DURATION) DURATION FROM DAYVIEW " ; vSQL += " where to_date(CHECKDATE,'YYYY/MM/DD') = to_date(' " + (_bstr_t)refDateTime.Format( " %Y/%m/%d " ) + " ','YYYY/MM/DD') " ; vSQL += " GROUP BY CHECKDATE " ; // m_times = (LPCTSTR)(_bstr_t)m_calendar.Format("%Y/%m/%d"); AfxMessageBox(vSQL); 参考:http://blog.tom.com/hongya6088/article/523.html